Выполнение цикла по нескольким столбцам набора данных для создания новой переменной

Я пытаюсь создать новую переменную, используя цикл, который ищет по 14 столбцам и возвращает 1, если строка присутствует в любом из 14 столбцов, и возвращает 0, если ее нет ни в одном из 14 столбцов. Следующий код работает, но довольно утомительно, я надеюсь, что кто-то знает о более эффективном методе.

Рабочий код:

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 ответов

Другие вопросы по тегам