This question already has answers here:
Count number of columns by a condition (>) for each row

(4 个回答)


4年前关闭。




我有一个数据框,它看起来像:
col1  col2  col3
0     0     .4
.3    1     0
0     0     .8

我想创建一个新列,它计算其他三行中大于 0 的列值的数量:
col1  col2  col3  col4
0     0     .4    1
.3    1     0     2
0     0     .8    1

最佳答案

你只需要使用 apply 函数:

## Example Data
dd = data.frame(col1 = c(0, .3, 0), col2=c(0, 1, 0),
                        col3=c(0.4, 0, 0.8))
apply(dd, 1, function(i) sum(i > 0))

因此,要将其添加到您现有的数据框:
dd$col4 =  apply(dd, 1, function(i) sum(i > 0))

或者,我们可以将数据帧转换为逻辑值,然后使用 rowSums
rowSums(dd > 0)

关于r - 给定行中大于 0 的列值数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39536982/

10-11 15:19