欢迎光临
我们一直在努力

data.table 大表按两列去重并逐列取首个非缺失值

按两个字段做去重时,往往还要把同组的其它列合并进来: 每列取该组内第一个非缺失的值,如果整组都是缺失值就保持缺失。数据量到了几百万行、几 GB 文件的规模,常规写法会直接卡住。

问题现象

输入数据形如:

ID HFAdmission link_type ADMIDATE newdate
1 A 2020-01-01 Linked <NA> <NA>
2 A 2020-02-01 HF only 2020-02-01 2020-02-01
3 A 2020-03-01 HF only <NA> 2020-03-01
4 A <NA> HES only 2020-03-01 2020-03-01
5 A <NA> HES only 2020-04-01 2020-04-01
6 B 2020-06-01 Linked <NA> <NA>
7 B 2020-07-01 HF only 2020-07-01 2020-07-01
8 B <NA> HES only 2020-07-01 2020-07-01

按 ID 与 newdate 两列去重。第 3、4 行的 (A, 2020-03-01) 是重复键: HFAdmission 取第 3 行的值,ADMIDATE 取第 4 行的值,link_type 两者

赞(0)
未经允许不得转载:171主机测评 » data.table 大表按两列去重并逐列取首个非缺失值
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址