Я кадр данных, называемый «чистый», который выглядит следующим образом:If-Else оператор производит неверный результат в R
structure(list(X = 6:12, CollectorID = c(58302467L, 58302467L,
57754564L, 58301689L, 58302467L, 58302467L, 57754564L), StartDate = structure(c(7L,
6L, 5L, 3L, 4L, 2L, 1L), .Label = c("10/5/14 1:49", "10/5/14 2:03",
"10/5/14 2:06", "10/5/14 2:09", "10/5/14 2:25", "10/5/14 2:48",
"10/5/14 3:06"), class = "factor")), .Names = c("X", "CollectorID",
"StartDate"), class = "data.frame", row.names = c(NA, -7L))
Я хочу перевести числовые значения в CollectorID в имена в новом поле под названием ' Коллектор'. Код, я использую
if(clean$CollectorID==58302467){
clean$Collector<-"Social Media"
} else if(clean$CollectorID==57754564){
clean$Collector<-"Email"
} else {
clean$Collector<-"Blog Post"
}
производит следующее предупреждающее сообщение:
In if (clean$CollectorID == 58302467) { :
the condition has length > 1 and only the first element will be used
Я не понимаю, предупреждение, и мой код также производит неверный результат; он устанавливает все значения в чистом $ Collector в «Post Blog».
Прочтите 'help (" if ")'. После того, как вы прочтете все это примечание, см. Раздел «См. Также, где он предлагает посмотреть« ifelse ». При этом прямое индексирование будет работать отлично. – Dason