创建具有不同帐号的表,R中的第一个日期

创建具有不同帐号的表,R中的第一个日期,r,R,我的数据如下: MTH_KEY ACCOUNT_NUMBER NPL_DATE OUSTANDING_BALNCE 201405 1234 05-05-14 $40.5 201405 1234 20-04-14 $65.5 201405 1234 20-04-14 $65.5 201405 1

我的数据如下:

MTH_KEY     ACCOUNT_NUMBER      NPL_DATE     OUSTANDING_BALNCE
201405          1234            05-05-14        $40.5
201405          1234            20-04-14        $65.5
201405          1234            20-04-14        $65.5
201405          1234            16-04-14        $70.5   
201406          1234            01-04-14        $80.5
201406          4321            15-06-14        $40.5
201406          4321            15-05-14        $50.5
201407          4321            01-04-14        $60.5
201407          5678            04-06-14        $48.5
201407          5678            05-07-14        $45.5
201407          5678            05-08-14        $35.5
我想过滤具有唯一账号、第一个“不良贷款日期”及其“未清余额”的数据,以获得如下预期结果:

MTH_KEY     ACCOUNT_NUMBER      NPL_DATE       OUSTAN_BALANCE       
201406          1234            01-04-14        $80.5   
201407          4321            01-04-14        $60.5
201407          5678            04-06-14        $48.5
谢谢你的帮助!!

请注意,我将尝试使用包
data.table
来解决这个问题。我还将假设数据位于名为
LGD\u data\u update
data.table
中,正如您在评论中指出的那样

所以,你需要这个

 library(data.table)
 LGD_data_update <- data.table( LGD_data_update)
然后,您可以按日期排序

 LGD_data_update <-  LGD_data_update[sort(NPL_DATE), ]
然后,我们将只选择占位符(Foo)值为1的列,因为这些列将是最早的NPL日期

 LGD_data_update <-  LGD_data_update[Foo == 1, ]

这里有一种使用dplyr的方法-

LGD_data_update %>%
  arrange(ACCOUNT_NUMBER, NPL_DATE) %>%
  distinct(ACCOUNT_NUMBER, .keep_all = T)

@Sophana,如果有错误,请告诉我返回了哪些错误?如何创建您提到的数据?我的回答中指出,数据被假定为您拥有的表的名称,因为我不知道您如何在R中命名您的表。@Sophana好的,我已更新了答案。你能再试一次,看看它是否有效吗?@Sophana,它改变了表的类,允许用我使用的更简单的语法进行一些操作。这是供你参考的。df指的是什么?您可以用实际的数据帧名称替换它。我只是根据你对另一个答案的评论编辑了它。
 LGD_data_update <-  LGD_data_update[Foo == 1, ]
 LGD_data_update[, Foo := NULL]
LGD_data_update %>%
  arrange(ACCOUNT_NUMBER, NPL_DATE) %>%
  distinct(ACCOUNT_NUMBER, .keep_all = T)