计算出现次数[R]

时间:2017-08-01 18:10:19

标签: r

df <- data.frame(name=c('black','black','black','red','red'),
                 type=c('chair','chair','sofa','sofa','sofa'),
                 num=c(4,5,12,4,6))

对于每一行,我想计算“type”出现的次数为num> 4的次数,然后创建一个新列。所以对于第一行,“chair”出现一次,值为5,因此它被赋值为1.对于第二行,同样的事情。对于第3行,沙发出现两次,值> 4。所以所有独特的“类型”最终都会具有相同的价值:

df
#    name  type num count
# 1 black chair   4     1
# 2 black chair   5     1
# 3 black  sofa  12     2
# 4   red  sofa   4     2
# 5   red  sofa   6     2

2 个答案:

答案 0 :(得分:1)

df$count = ave(df$num, df$type, FUN = function(x) sum(x>4))
df$count
#[1] 1 1 2 2 2

答案 1 :(得分:1)

我们可以使用

library(dplyr)
df %>%
   group_by(type) %>%
   mutate(count = sum(num>4))

base R(我们之前评论过)

df$count <- with(df, ave(num > 4, type, FUN = sum))