我正在尝试按组计算大于0的单元格数量,我需要帮助来解决这个问题。
我的数据如下:
Group Number of Shoes
1 0
1 1
1 2
2 0
2 NA
2 1
3 1
3 2
3 2
我想要这个:
Group Shoe owners
1 2
2 1
3 3
答案 0 :(得分:2)
您可以通过以下方式完成此操作:
aggregate(Number.of.Shoes ~ Group, df, function(x) sum(x > 0, na.rm = TRUE))
结果:
Group Number.of.Shoes
1 1 2
2 2 1
3 3 3
这也可以使用dplyr
包来完成:
library(dplyr)
df %>%
group_by(Group) %>%
summarise(counts = sum(Number.of.Shoes > 0, na.rm = TRUE))
答案 1 :(得分:1)
我们也可以使用data.table
library(data.table)
setDT(df1)[Number.of.Shoes >0, .(Shoe.Owners = .N), Group]
# Group Shoe.Owners
#1: 1 2
#2: 2 1
#3: 3 3