R 中的 data.table 中的 Group by 只保留列中的非 NA 值

Ha *_*ham 4 group-by r data.table

我是 R 新手。

我想按 data.table 进行分组并仅保留列中的非 NA 值。

我的桌子是这样的:

c1   c2   c3   c4
1    A    NA   NA
1    NA   B    NA
1    NA   NA   C
2    A1   NA   NA
2    NA   B1   NA
2    NA   NA   C1
Run Code Online (Sandbox Code Playgroud)

我想要一个结果:

c1   c2   c3   c4
1    A    B    C
2    A1   B1   C1
Run Code Online (Sandbox Code Playgroud)

希望任何人都可以提供帮助!

akr*_*run 5

尝试

library(data.table)
setDT(df1)[, lapply(.SD, na.omit) , by = c1]
#    c1 c2 c3 c4
#1:  1  A  B  C
#2:  2 A1 B1 C1
Run Code Online (Sandbox Code Playgroud)

或者

setDT(df)[, lapply(.SD, function(x) x[!is.na(x)]) , by = c1]
Run Code Online (Sandbox Code Playgroud)