rowMean基于多个条件

时间:2014-04-25 12:28:46

标签: r excel conditional mean

如果满足以下条件,我想在两列中计算rowMean。如果没有返回NA。

这就是我在Excel中编写它的方法。任何人都可以建议我如何在R中做到这一点?

=IF(OR(AND(V1>=3,V2>=0),AND(V1>=2,V2>=1),AND(V1>=1,V2>=2)),(V3+V4)/(V5+V6),NA)

我已经在R中编写了基本的If语句,但除了如上所述之外,无法将其显示出来。

1 个答案:

答案 0 :(得分:1)

如果a是您的data.frame并且您想要使用循环:

for(i in 1:nrow(a)){
a$results[i] <- ifelse( (a[i,1]>=3 & a[i,2]>=0) | (a[i,1] >=2 & a[i,2] >= 1) | ..., mean(a[i,1],a[i,2]), NA) # & is the AND | is the OR 
}

更好的方法是为作业定义一个函数,并使用apply循环遍历data.frame。

f <- function(x){
ifelse((x[1]>=3 & x[2]>=0) | (x[1] >=2 & x[2] >= 1) | ..., mean(x[1],x[2]), NA)
}

a$results <- apply(a,1,f)