t0_54program头像

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 两者

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/2501_90323865/article/details/169178441

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--