Вы можете попробовать использовать ifelse
для всего фрейма данных:
ifelse(data == "No" | is.na(data), 0, 1)
A B C
[1,] 1 1 0
[2,] 0 1 1
[3,] 0 0 0
[4,] 1 1 0
Данные:
data <- data.frame(A=c("Yes", "No", NA, "Yes"),
B=c("Yes", "Yes", "No", "Yes"),
C=c("No", "Yes", "No", "No"), stringsAsFactors=FALSE)
Обратите внимание, что на самом деле генерируется матричный результат , но учитывая, что все его значения равны нулю и единице, возможно, вы найдете это приемлемым.