Я пытаюсь сделать следующее утверждение ifelse. Моя цель - создать новый столбец, в котором я смогу идентифицировать лиц с одинаковым значением в четырех столбцах.
example<-data.frame(replicate(4,sample(1:2,20,rep=TRUE)))
within(example,example$X <- ifelse(example$X1!=example$X2,NA,
ifelse(example$X2!=example$X3,NA,
ifelse(example$X3!=example$X4,NA,example$X1))))
В моем случае четыре столбца - это годы. Я хочу идентифицировать людей группы. С моими данными код выглядит следующим образом:
within(educ_1,educ_1$X <- ifelse(educ_1$N2014!=educ_1$N2015,NA,
ifelse(educ_1$N2015!=educ_1$N2016,NA,
ifelse(educ_1$N2016!=educ_1$N2017,NA,educ_1$N2014))))
Однако я получаю следующую ошибку:
Ошибка в [<-.data.table
(*tmp*
,, nl, значение = список (educ_1 = список (PER_ID = c (9.95048326217056e-313): поставлено 67 элементов, которые должны быть назначены 14191305 элементам столбца «educ_1». Если вы хотите sh для «переработки» RHS, используйте rep (), чтобы сделать это понятным для читателей вашего кода.
Одна вещь заключается в том, что я использовал функцию fread для импорта данных, так как это около 14 миллионов наблюдений, тогда я думал, что это будет более эффективно .
Есть ли какие-либо мысли или предложения по поводу синтаксиса или ошибки? Что мне делать ?. Почему он работает с простыми утверждениями, но не с моими собственными данными?
вывод примера