簡體   English   中英

使用來自 dplyr 的 Unite 組合多個字符列時 na.rm = TRUE 的問題

[英]Issue with na.rm = TRUE when combining multiple character columns using Unite from dplyr

當嘗試使用來自 dplyr 的 unite 組合多個字符列時, na.rm = TRUE選項不會刪除 NA。

一步步:

  1. 原始數據集有 5 列word1:word5原始數據的圖像
  2. 希望使用代碼將word1:word5到一個列中:
    data_unite_5 <-  data_original_5 %>%
        unite("pentawords", word1:word5, sep=" ", na.rm=TRUE, remove=FALSE)
  1. 我試過使用mutate_if(is.factor, as.character)但這沒有用。

任何建議,將不勝感激。

您誤解了na.rm參數如何適用於unite 按照此處tidyverse 頁面上的示例, zxyunite

使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM