na.rm = TRUE 未能在 unite() 上删除 NA

na.rm = TRUE failing to remove NA on unite()

我不知道为什么这不起作用。

po <- unite(Need_info[1:5,],"lala",c(5,6,13,14,15,16),na.rm = TRUE,remove = TRUE)

returns

问题可能是列是因素。尝试使用:

library(dplyr)
library(tidyr)

Need_info %>%
  mutate_if(is.factor, as.character) %>%
  unite("lala",c(5,6,13,14,15,16),na.rm = TRUE,remove = TRUE)

使用可重现的示例:

df <- data.frame(a = c(letters[1:5], NA), b = c(NA, letters[11:15]))
df %>% unite("lala", c(1, 2), na.rm  =TRUE, remove = TRUE)

#  lala
#1 1_NA
#2  2_1
#3  3_2
#4  4_3
#5  5_4
#6 NA_5

转换为字符后:

df %>% 
  mutate_all(as.character) %>%
  unite("lala", c(1, 2), na.rm = TRUE, remove = TRUE)

#  lala
#1    a
#2  b_k
#3  c_l
#4  d_m
#5  e_n
#6    o