Я хочу вставить несколько столбцов с некоторым текстом, где они объединены, только если хотя бы один из них не является NA, а текущее решение у меня есть, но оно громоздко. Поэтому мне интересно, есть ли более простой способ сделать это (создать столбец «комбинировать» ниже). Я бы хотел использовать tidyr, но, похоже, не существует способа указать, как обрабатывать недостающие значения в unite()Вставка поднаборных столбцов
Спасибо, и я надеюсь, что я не пропустил что-то очевидное.
df = data.frame(num=c(1,2,NA,NA),place=c("Rome",NA,"Paris",NA))
df$combine[!is.na(df$num)|!is.na(df$place)] =
paste(df$num[!is.na(df$num)|!is.na(df$place)],
"days in",df$place[!is.na(df$num)|!is.na(df$place)])
# df
# num place combine
# 1 1 Rome 1 days in Rome
# 2 2 <NA> 2 days in NA
# 3 NA Paris NA days in Paris
# 4 NA <NA> <NA>
Сочетание столбцов звучит как задание для 'cbind()'. –
Почему вам нужны строки, где все значения равны NA? Разве вы не можете просто удалить строки со всеми NA и просто «вставить» остальные? – Sotos
«2 дня в NA» или «Дни NA в Париже» как результат имеет смысл? – zx8754