合并两组观测以填充缺失数据- R

z9ju0rcb  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(100)

因此,我有一个包含重复条目的数据集,这些条目具有相同的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实体)。
非常感谢

at0kjp5o

at0kjp5o1#

如果您尝试按年份移动数据,并且数据的顺序如上所述,则可以将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

相关问题