计算满足r中两个条件的值的计数

时间:2017-03-24 14:50:25

标签: r

我是R的新手并拥有一个大型数据集,我需要检查这两个值中的一个是否超过阈值;如果确实如此,我需要计算它,如果不这样做,我会忽略该值。

我必须迭代几列,但我遇到的问题是我的if语句只检查第一个值。一个简单的例子就是列idval1val2val3。如果val1val2大于阈值,那么我会计算val3否则忽略。我的数据集名为data

id val1 val2 val3
1  .4    4    10
2   5    5    11
3   2    2    1
4   6    1    10
5   2    100  4

我的代码是:

if(data$val1 > 5 | data$val2 > 5){sum(data$val3>5)}

问题是它只检查第一行。我怎样才能遍历每一行?

3 个答案:

答案 0 :(得分:0)

with(data, sum(val3[pmax(val1, val2) > 5]))

[1] 14

答案 1 :(得分:0)

sum(data$val3[data$val1 > 5 | data$val2 > 5])

答案 2 :(得分:0)

我们也可以使用rowSums

执行此操作
sum(rowSums(df1[c('val1', 'val2')]>5)>0)
#[1] 2