【发布时间】:2017-01-01 17:38:41
【问题描述】:
我想将一些列与一些文本粘贴在一起,只有当至少一个不是 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 的行,然后只删除
paste其余的行吗? -
“2 days in NA”或“NA days in Paris”作为输出有意义吗?