[英]Issue with na.rm = TRUE when combining multiple character columns using Unite from dplyr
当尝试使用来自 dplyr 的 unite 组合多个字符列时, na.rm = TRUE
选项不会删除 NA。
一步步:
word1:word5
原始数据的图像word1:word5
到一个列中: data_unite_5 <- data_original_5 %>%
unite("pentawords", word1:word5, sep=" ", na.rm=TRUE, remove=FALSE)
mutate_if(is.factor, as.character)
但这没有用。任何建议,将不胜感激。
您误解了na.rm
参数如何适用于unite
。 按照此处tidyverse 页面上的示例, z
是x
和y
的unite
。
使用na.rm = FALSE
#> z x y
#> <chr> <chr> <chr>
#> 1 a_b a b
#> 2 a_NA a NA
#> 3 NA_b NA b
#> 4 NA_NA NA NA
使用na.rm = TRUE
#> z x y
#> <chr> <chr> <chr>
#> 1 "a_b" a b
#> 2 "a" a NA
#> 3 "b" NA b
#> 4 "" NA NA
因此na.rm
确定NA
值如何出现在组装的字符串 ( pentrawords
) 中,它不会从数据中删除行。
如果您想删除数据集的第四行,我会推荐filter
。
data_unite_5 <- data_original_5 %>%
unite("pentawords", word1:word5, sep =" " , na.rm = TRUE, remove = FALSE) %>%
filter(pentawords != "")
这将从您的 output 中排除所有空字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.