【发布时间】:2021-06-11 20:46:14
【问题描述】:
我可能有一个简单的问题,但无法弄清楚。
我有一个包含两个变量的数据集,这两个变量都是因子。它看起来像这样:
my.data<-data.frame(name=c("a","a","b","b","b","b", "b", "b", "e", "e", "e"),
var1=c(1, 2, 3, 4, 2, 1, 4, 1, 3, 4, 3))
我想计算所有 a、b 和 e 的频率 1、2、3 和 4,然后将它们聚合到一行中。这意味着所有“a”、“b”和“e”都应该在一行中,然后我想创建 4 个变量来指示这些行中所有 1、2、3 和 4 的频率。我已经设法计算出所有“a”、“b”和“e”计数的频率,但我无法将所有“a”、“b”和“e”折叠成单独的行。
我的代码是这个:
a <- my.data %>%
dplyr:: select(name, var1) %>%
mutate(name = as.factor(name),
var1 = as.factor(var1)) %>%
group_by(name, var1) %>%
summarise(n = n()) %>%
mutate(freq = n / sum(n))
我的结果应该是这样的:
name Freq1 Freq2 Freq3 Freq4
a 0,00 0,00 0,5 0,5
b 0,30 0,30 0,30 0,10
e 0,20 0,20 0,20 0,40
谢谢。
【问题讨论】: