首页 > 解决方案 > 在R中的apply函数中使用if else语句

问题描述

我有以下 2 列

lower=rnorm(10,0,1)
upper=rnorm(10,1,1)

dd=data.frame(lower,upper)

我想知道是否对于每一行,lower < 0.5 和upper > 1。我使用 for 循环如下所示,

cc=c()
for(i in 1: 10 ){
  cc[i]= ifelse(  (  dd$upper[i] > 1 && dd$lower[i] < 0.5  ),1,0
  )
}

但我想使用合适的应用功能之一来做到这一点。由于数据在数据框中,我尝试使用 apply 函数。这是我的代码,

apply(dd , 1, function (i,j) {ifelse( (dd$i> 0.5 && dd$j<0.5) ,0,1 )

}
  )

我得到 NA 的。如果有人帮我找出错误真的很有帮助

谢谢

标签: rif-statementapply

解决方案


我认为与您尝试过的相比,下面的解决方案要容易得多。看一看

set.seed(10)
lower=rnorm(10,0,1)
upper=rnorm(10,1,1)

dd=data.frame(lower,upper)

dd$flag<-ifelse((dd$lower < 0.5 & dd$upper > 1),1,0)

这将为您提供所需的输出。


推荐阅读