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)
希望任何人都可以提供帮助!
尝试
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)