функция ifelse не отвечает - PullRequest
       1

функция ifelse не отвечает

0 голосов
/ 19 сентября 2019

Я использую функцию "ifelse" в R и пытаюсь создать два новых столбца (то есть x1 и x2) из ​​большого набора данных, подобного следующему фрейму данных

df <-
structure(
list(
  id = c(1L, 2L, 3L, 4L,5L),
  date1 = c("1/4/2004", "3/11/2004", "NA", "13/10/2004","11/3/2003"),
  date2 = c("8/6/2002", "11/5/2004", "3/5/2004","25/11/2004","21/1/2004"),
  s1=c(1,2,1,"NA","NA"),
  date3=c("NA", "NA", "18/2/2006", "NA","NA"),
  s2=c("NA","NA",2,"NA","NA")
),
.Names = c("id", "date1","date2","s1","date3","s2"),
class = "data.frame",
row.names = c(NA,-5L),
col_types = c("numeric", "date","date","numeric","date","numeric")
)

Новый столбецОжидается, что x1 будет иметь значение 3, если date1 не «NA» и соответствующая ячейка s1 имеет NA, в противном случае x1 должно быть значением s1.Аналогично, ожидается, что x2 будет иметь значение 3, если date1 не является «NA», а соответствующая ячейка s2 имеет NA, в противном случае x2 должно быть значением s2.

Для этого я использовал следующие коды

df$x1<-ifelse(!is.na(df$date1) & (df$s1=="NA"),d,df$s1)
df$x2<-ifelse(!is.na(df$date1) & (df$s2=="NA"),d,df$s2)

Этот код работает на приведенном выше кадре данных, но не работает с большим набором данных, при этом он не сообщает об ошибке.Под этим я подразумеваю, что код работает с большим набором данных без ошибок, но не выполняет ожидаемую функцию.Пожалуйста, я хотел бы знать, почему эта проблема возникает и как ее можно исправить.Я ценю любую помощь в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...