r - 将列粘贴在一起而不让 NA 成为字符

标签 r na

<分区>

我有一个相当大的数据集,其中有多个缺失值和重复值。我的第一个目标是创建一个由三个现有列组成的新列 (Name),例如FirstNameMiddleInitialLastName

我试过:

owners4$Name <- paste(owners4$FirstName, owners4$MiddleInitial, owners4$LastName)

但这会导致 NA 被粘贴为字符,而不仅仅是 NA。 在此之后,我将删除新列中具有 NA 的每一行。

有人确定我可以实现这一目标的方法吗?

最佳答案

使用 na.omit 粘贴列,参见示例:

# reproducible example
owners4 <- data.frame(FirstName = c("Aa", "Bb", NA),
                      MiddleInitial = c("T", "U", NA),
                      LastName = c(NA, "Yyy", NA))

owners4$Name <- apply(owners4[, c("FirstName", "MiddleInitial", "LastName")], 1,
                      function(i){ paste(na.omit(i), collapse = " ") })

owners4
#   FirstName MiddleInitial LastName     Name
# 1        Aa             T     <NA>     Aa T
# 2        Bb             U      Yyy Bb U Yyy
# 3      <NA>          <NA>     <NA>         

现在过滤掉名称为空的行

result <- owners4[ owners4$Name != "", ]
result
#   FirstName MiddleInitial LastName     Name
# 1        Aa             T     <NA>     Aa T
# 2        Bb             U      Yyy Bb U Yyy

关于r - 将列粘贴在一起而不让 NA 成为字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52753541/

相关文章:

r - 将 R 代码推送到 postgresql 数据库中的 PL/R 代码

r - knitr:for循环条件有什么办法可以包含Sexpr吗?

用该列的中位数替换矩阵每一列中的 NA

r - lm.fit(x, y, offset = offset, single.ok = single.ok, ...) : NA/NaN/Inf in 'y' , 中的错误尝试了所有可能的方法

r - dplyr:如何在函数内使用 group_by ?

r - R 中的支持向量机 : "Predictor must be numeric or ordered."

r - exshuffle 如何处理完形填空题(包 `exams`)?

Python:查找 NA 值高于阈值的列的名称

r - 转置和计算 PIL 逊相关

r - 具有NA值的ggplot折线图