因此,我有一个包含重复条目的数据集,这些条目具有相同的ID1但不同的ID2,并且某些数据丢失.我想要通过将缺失的观测移动到单个实体上,然后删除其他实体来生成完整的数据集.

一些示例测试数据来说明该问题:

library(data.table)
    
tab = data.table(ID1 = rep("A", 9),
               ID2 = c(rep("AA", 3), rep("AB", 3), rep("AC", 3)),
               year = c(2010, 2011, 2012, 2010, 2011, 2012, 2010, 2011, 2012),
               var1 = c(100, NA, 150, 100, 120, NA, NA, NA, NA),
               var2 = c(NA, NA, NA, 4, 5, NA, NA, 5, 2),
               var3 = c(4.1, 3.1, 2.7, NA, 3.1, NA, 4.1, NA, NA))

我已经根据丢失的数据量对实体进行了排序,但我需要一种方法来移动丢失的数据以填补空白.例如:将缺失的var1var2数据从AB移至AA.

我有多达5个副本,我的数据是面板(时间x实体).

非常感谢

推荐答案

如果您try 按年移动数据,并且数据按上述方式排序,则可以使用nafilltype="nocb":

v = c("var1", "var2", "var3")
tab[, (v):=lapply(.SD, nafill, type="nocb"), .(ID1, year), .SDcols = v][, first(.SD), .(ID1,year)]

输出:

      ID1  year    ID2  var1  var2  var3
   <char> <num> <char> <num> <num> <num>
1:      A  2010     AA   100     4   4.1
2:      A  2011     AA   120     5   3.1
3:      A  2012     AA   150     2   2.7

R相关问答推荐

geom_raster不适用于x比例中超过2,15的值

创建重复删除的唯一数据集组合列表

是否可以 Select 安装不带文档的R包以更有效地存储?

为什么st_join(ob1,ob2,left = True)返回具有比ob1更多功能的sf对象?

MCMC和零事件二元逻辑回归

名称输出pmap on tible

更改编号列表的 colored颜色

标识R中多个列中缺少的唯一值

R函数‘paste`正在颠倒其参数的顺序

在R中,如何将变量(A,B和C)拟合在同一列中,如A和B,以及A和C在同一面板中?

如何在所有绘图中保持条件值的 colored颜色 相同?

在使用tidyModels和XGBoost的二进制分类机器学习任务中,所有模型都失败

在不对R中的变量分组的情况下取两行的平均值

R基于变量组合创建新的指标列

SHILINY中DT列的条件着色

使用R、拼图和可能的网格包绘制两个地块的公共垂直线

conditionPanel不考虑以下条件

在具有条件的循环中添加行

从字符串列中的向量中查找第一个匹配的单词

如果y中存在x中的值,则将y行中的多个值复制到相应的x行中