我有类似于以下的数据:
a<-data.frame(pig=c(NA,"a","b","c",NA),cow=c(NA,"101","112","77",NA),chicken=c("Sep",NA,"Oct","Nov",NA),stringsAsFactors=FALSE)
print(a)
pig cow chicken
<NA> <NA> Sep
a 101 <NA>
b 112 Oct
c 77 Nov
<NA> <NA> <NA>
我试图将列粘贴在一起并获得 NA 如果任何粘贴列中存在任何 NA 以进行给定的观察,例如:
pig cow chicken rooster
<NA> <NA> Sep <NA>
a 101 <NA> <NA>
b 112 Oct b-112-Oct
c 77 Nov c-77-Nov
<NA> <NA> <NA> <NA>
我使用了以下
a$rooster<-paste(a$pig,a$cow,a$chicken,sep="-")
这会产生包含 NA 作为字符串一部分的字符串,这并不理想。我看到的文档没有明确解决这个问题,例如:suppress NAs in paste()有什么想法吗?谢谢!
最佳答案
stringr::str_c
有“传染性”NA
秒
paste('a', 'b', NA)
#> [1] "a b NA"
stringr::str_c('a', 'b', NA)
#> [1] NA
关于r - 当 R 中粘贴的列中存在 NA 时,将粘贴的列值设为 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48433514/