我正在尝试使用循环创建一个新变量,该循环在 14 列中进行搜索,如果字符串存在于 14 列中的任何一列中,则返回 1,如果字符串不存在于 14 列中的任何一列中,则返回 0。以下代码有效,但非常乏味,我希望有人知道更有效的方法。
工作代码:
IntellDis <- for (i in 1:2189){
if(New$Diagnosis1[i]=="Intellectual disabilities [6543]" |
New$Diagnosis2[i]=="Intellectual disabilities [6543]" |
...
New$Diagnosis13[i]=="Intellectual disabilities [6543]" |
New$Diagnosis14[i]=="Intellectual disabilities [6543]")
{New$IntellDis[i]=1}
if(New$Diagnosis1[i]!="Intellectual disabilities [6543]" &&
New$Diagnosis2[i]!="Intellectual disabilities [6543]" &&
...
New$Diagnosis13[i]!="Intellectual disabilities [6543]" &&
New$Diagnosis14[i]!="Intellectual disabilities [6543]")
{New$IntellDis[i]=0}
}
显然这很乏味......
我认为这样的事情可能会奏效:
IntellDis <- for (i in 1:2189){
if(New[c(4:17)][i]=="Intellectual disabilities [6543]")
{New$IntellDis[i]=1}
if(New[c(4:17)][i]!="Intellectual disabilities [6543]")
{New$IntellDis[i]=0}
}
但我收到以下错误:
Error in `[.data.frame`(New[c(4:17)], i) : undefined columns selected
任何建议都非常感谢!谢谢!