【发布时间】:2021-11-22 01:11:59
【问题描述】:
我尝试将各种因素水平的分组计数保存到一个新变量中:
假设我的数据如下所示:
a <- c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4)
b <- c("acc", "rej", "con", "acc", "rej", "con", "acc", "rej", "con", "acc", "rej", "con", "acc", "rej", "con","acc", "rej", "con", "acc", "rej")
df <- data.frame(a,b)
生成的数据框应如下所示:
a <- c(1,2,3,4)
number_acc <- c(2,2,1,2)
number_rej <- c(2,1,2,2)
number_con <- c(1,2,2,1)
我尝试通过以下方式解决问题:
df2 <- df %>%
group_by(a) %>%
mutate(number_acc = count(b == 'acc'),
number_rej = count(b == 'rej'),
number_con = count(b == 'con'))
但是,我收到一条错误消息,指出方法“count”不能应用于“logical”类的对象。
感谢您的帮助!
【问题讨论】:
-
尝试使用 sum,而不是 count。或者只是
as.data.frame.matrix(table(df))? -
你需要总结,而不是变异。
-
可能重复,相关帖子:stackoverflow.com/q/40266062/680068
-
非常感谢。当我使用 sum 而不是 count 时,一个小问题仍然存在:我为变量 a 和 b 的每个组合得到一行,但我希望在新数据帧中只有一次变量 a。
-
完美搭配摘要!再次感谢你! :-)