[英]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.