Есть ли способ заменить значение в одном столбце значением из другого столбца, а затем «пустым» значением, взятым для замены? - PullRequest
0 голосов
/ 17 января 2020

У меня есть кадр данных, изображенный ниже. То, что я пытаюсь сделать, это в случае, когда столбец 2nd_Booking_Deadline пуст («»), а затем заменить его значением в 3rd_Booking_Deadline. После замены 2nd_Booking_Deadline на значение 3rd_Booking_Deadline мне нужно очистить ("") поле 3rd_Booking_Deadline.

Я написал приведенный ниже фрагмент кода, который выполняет sh первую часть этой задачи, но возвращает предупреждение, которое заставляет меня немного нервничать:

Warning message:
In AAR_Combined_w_LL$`2nd_Booking_Deadline`[AAR_Combined_w_LL$`2nd_Booking_Deadline` ==  :
  number of items to replace is not a multiple of replacement length

Вот что я придумала до сих пор:

AAR_Combined_w_LL$`2nd_Booking_Deadline`[AAR_Combined_w_LL $`2nd_Booking_Deadline` == ""] <- AAR_Combined_w_LL$`3rd_Booking_Deadline`

Любые мысли о том, является ли это предупреждение серьезным и есть ли способ выполнить обе задачи одновременно, было бы очень полезно enter image description here

1 Ответ

1 голос
/ 17 января 2020

При замене нужно подмножество с обоих концов. Попробуйте:

#Get the indices where `2nd_Booking_Deadline` is blank
inds <- AAR_Combined_w_LL $`2nd_Booking_Deadline` == ""

#Replace those blank values from the corresponding indices
AAR_Combined_w_LL$`2nd_Booking_Deadline`[inds] <- AAR_Combined_w_LL$`3rd_Booking_Deadline`[inds]

#Change `3rd_Booking_Deadline` to blank string
AAR_Combined_w_LL $`3rd_Booking_Deadline`[inds] = ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...