运行循环遍历数据集的多个列以创建新变量

时间:2013-05-17 20:21:37

标签: r loops multiple-columns

我正在尝试使用循环创建一个新变量,该循环搜索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

非常感谢任何建议!谢谢!

0 个答案:

没有答案