簡體   English   中英

通過刪除 r 中的 NA 來連接具有相同名稱的行

[英]join rows with same name by removing NA in r

您好,我需要您的支持才能將具有相同名稱的行連接在一起並刪除 NA。 如果列具有相同名稱,則使用下標創建新列,或將其與逗號組合在一起。

我有這個例子 dataframe:

name<-c("John","John","John","Luis","Luis")
may<-c("a",NA,NA,"a",NA)
june<-c(NA,"b",NA,NA,"a")
july<-c("d",NA,"c",NA,NA)
df<-data.frame(name,may,june,july)

具有以下 dataframe:

  name  may june july
1 John    a <NA>    d
2 John <NA>    b <NA>
3 John <NA> <NA>    c
4 Luis    a <NA> <NA>
5 Luis <NA>    a <NA>

我希望得到如下結果:

  name may  june  july  july.2
1 John   a    b    c      d
2 Luis   a    a   <NA>   <NA>

或者像下面這樣:

  name  may june  july
1 John   a    b   c,d
2 Luis   a    a   <NA>

我們可以使用summarize將字符串連接到同一個“名稱”下。

summarize()中,如果同一列中的所有記錄都是NA ,我們用NA填充該記錄。 如果不是,則連接沒有NA的字符串。

df %>% 
  group_by(name) %>% 
  summarize(across(everything(), ~ifelse(sum(is.na(.x)) == n(), NA, paste0(na.omit(sort(.x)), collapse = ","))))

# A tibble: 2 × 4
  name  may   june  july 
  <chr> <chr> <chr> <chr>
1 John  a     b     c,d  
2 Luis  a     a     NA  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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