全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
737 2
2021-06-12
for (i in 1:nrow(dat_FI_CD))
{if((dat_FI_CD$sys>=140 | dat_FI_CD$dia>=90) | dat_FI_CD$g15a1==1)
{dat_FI_CD$gxy<-1}
else if((dat_FI_CD$sys<140 | dat_FI_CD$dia<90) & dat_FI_CD$g15a1==2)
{dat_FI_CD$gxy<-0}
else if(dat_FI_CD$g15a1%in%c(8,9)==TRUE)
{dat_FI_CD$gxy<-NA}
}
显示“需要TRUE/FALSE值的地方不可以用缺少值”的情况.
不清楚怎么修改,求大神指点!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-6-12 22:36:37
if后跟的是单个逻辑值而不是逻辑向量。要使用&&替代&,||替代|,使用any或者all将逻辑向量转为单个逻辑值
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-6-13 09:01:00
代码白人 发表于 2021-6-12 21:30
for (i in 1:nrow(dat_FI_CD))
{if((dat_FI_CD$sys&gt;=140 | dat_FI_CD$dia&gt;=90) | dat_FI_CD$g15a1==1)
{ ...
像这种单个赋值的运算,可以用ifelse函数,更好用一些
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群