利用内置的泰坦尼克号数据集,我目前统计了变量“Class”的观测次数。如何创建一个新列,其中包含“Survive ='Yes'”和“Survive ='No'”的计数。
> as.data.frame(Titanic) %>%
mutate_if(is.character, as.factor) %>%
group_by(Class) %>%
summarise("Number of Observations" = n() )
# A tibble: 4 × 2
Class `Number of Observations`
<fct> <int>
1 1st 8
2 2nd 8
3 3rd 8
4 Crew 8
我希望能得到类似这样的东西
# A tibble: 4 × 2
Class `Number of Observations` Survived.Yes Survived.No
<fct> <int>
1 1st 8 4 4
2 2nd 8 4 4
3 3rd 8 4 4
4 Crew 8 4 4
我尝试将 "Survived" 放入“group by”语句,但它会输出到单独的一行。
as.data.frame(Titanic) %>%
mutate_if(is.character, as.factor) %>%
group_by(Class, Survived) %>%
summarise("Number of Observations" = n() )
# A tibble: 8 × 3
# Groups: Class [4]
Class Survived `Number of Observations`
<fct> <fct> <int>
1 1st No 4
2 1st Yes 4
3 2nd No 4
4 2nd Yes 4
5 3rd No 4
6 3rd Yes 4
7 Crew No 4
8 Crew Yes 4
非常感谢您的建议。
Yes = ~ sum(. == "Yes")
相当于Yes = function(x) sum(x=="Yes")
。更多用法可以在?across
的帮助页面中找到。 - Darren Tsai