首页 > 解决方案 > 如果 R 中的任何列中存在任何实例,则按行计数

问题描述

我有一个像这样的数据框:df

ID  Black  red   blue  green
1     0      1     1     1
2     0      0     2     1
3     0      5     1     2
4     0      0     1     2
5     0      0     1     2

有了这些数据,无论实际数字如何,我如何计算具有任何数字的列?有没有办法做到这一点?

我试过rowSums(df)了,但结果不是我想要的。

我想要的输出是:

ID  Black  red   blue  green    count
1     0      1     1     1        3
2     0      0     2     1        2
3     0      5     1     2        3
4     0      0     1     2        2
5     0      0     1     2        2

提前致谢!

标签: rcountrow

解决方案


我认为这应该对你有用

data = data.frame(Black = rep(0, 5),
                  Red = c(1,0,5,0,0),
                  Blue = c(1,2,1,1,1),
                  Green = c(1,1,2,2,2))


data$count = apply(data, 1, FUN = function(x) length(x[x>0]))

推荐阅读