輸入資料
V1 V2 V3 V4 V5 #header
a b c d e #full data 1
NA f g NA NA
NA NA NA i NA
NA j NA NA NA k
a1 b1 c1 d1 e1 #full data 2
NA NA f1 g1 NA
預期輸出
V1 V2 V3 V4 V5
a bfj cg di ek
a1 b1 c1f1 d1g1 e1
這是有用的鏈接: 用相鄰行“ROW”而不是列中的值替換行中的 NA
我使用了很多 for 回圈。OMG .. 我的代碼很臟。
uj5u.com熱心網友回復:
這是一種使用dplyr. 首先,我確定沒有 NA 的列。然后我使用這些的累積計數來定義組。在這些組中,我將所有行的值(不包括 NA)粘貼在一起。
library(dplyr)
df1 %>%
rowwise() %>% mutate(full = sum(is.na(c_across()))) %>% ungroup() %>%
group_by(group = cumsum(full == 0)) %>%
summarize(across(.fns = ~paste0(na.omit(.x), collapse = ""))) %>%
select(-group, -full)
# A tibble: 2 × 5
V1 V2 V3 V4 V5
<chr> <chr> <chr> <chr> <chr>
1 a bfj cg di e
2 a1 b1 c1f1 d1g1 e1
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359745.html
下一篇:如何使用代碼關閉列印預覽頁面
