У меня есть x1, x2, ..., x96, y1, y2, ..., y96
категориальные переменные с levels(x1,...,x96) = c(1,2,3,4,5)
, levels(y1,...,y96) = c(11,12,13,14,15)
.
Есть около 200 000 записей без NA.
Я хотел бы просмотреть все записи и переменныетак что
data[,paste0('z',1:96)] = 0
data$xx = 0
data$yy = 0
for (row in 1:nrow(data)) {
for (i in 1:96) {
if (data[row,paste(x,i,sep="")] == 1
| data[row,paste(x,i,sep="")] == 2
| data[row,paste(x,i,sep="")] == 5) {
if (data[row,paste(y,i,sep="")] == 11
| data[row,paste(y,i,sep="")] == 12) {
data[row,paste0('z',i)] = 1
} else {
data$xx = data$xx + 1
}
} else if (data[row,paste(x,i,sep="")] == 3) {
if (data[row,paste(y,i,sep="")] == 14
| data[row,paste(y,i,sep="")] == 15) {
data$xx = data$xx + 1
} else {
data$yy = data$yy + 1
}
}
}
}
Теперь, он успешно работает и дает мне правильный вывод, но это занимает так мучительно много времени, как больше, если добавить операторы ...
Так как это простопростой цикл с кучей ifelse, я думаю, что должен быть какой-то эффективный способ добиться того, что я делаю.
Спасибо!