分组在R中的data.table中,只保留列中的非NA值 [英] Group by in data.table in R which only keep non NA values from columns

查看:127
本文介绍了分组在R中的data.table中,只保留列中的非NA值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是R的新手。

我想根据data.table进行分组,并且只保留列中的非NA值。

I want to group by a data.table and keep only non NA values from columns.

我的表格如下:

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

我想要一个结果:

c1   c2   c3   c4
1    A    B    C
2    A1   B1   C1

推荐答案

尝试

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

setDT(df)[, lapply(.SD, function(x) x[!is.na(x)]) , by = c1]

这篇关于分组在R中的data.table中,只保留列中的非NA值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆