r - 在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 的。如果有人帮我找出错误真的很有帮助
谢谢
解决方案
我认为与您尝试过的相比,下面的解决方案要容易得多。看一看
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)
这将为您提供所需的输出。
推荐阅读
- javascript - 如何使用 React 应用程序将一个 asp.net 核心控制器操作视图访问到 iframe 中?
- java - Angularjs将文件多部分FormData中的空值传递给Spring MVC
- javascript - Python Flask:使用 JQuery 将变量数据发送到同一 html 页面上的 textarea
- android - 找不到 com.android.tools.build:gradle:5.6
- java - 获取字符串值的最大值
- node.js - 如何在nodejs应用程序的swagger-ui中指定多个基本路径
- android - 斑马扫描仪 LI4278 有时会在代码中间输入 enter
- java - 如果列表为空/null,则 IN 子句选择所有元素
- html - 从所有类型的 li 和 ul 中删除黑点
- php - 如何在列中显示“choice()”的控制台提示?