【问题标题】:Selecting the earliest date from a given dataset in R从R中的给定数据集中选择最早的日期
【发布时间】:2018-02-16 18:10:30
【问题描述】:

我有一个包含很多行的数据集,但我只选择了几个,如下所示,并且只需要选择最早的 SORT_DT ,其余所有变量保持不变。

        CUST_NO ID_NO SYMBOL  AUTO_CREATE_DT     CLASS_TYPE    SORT_DT
1         107   10120      1    2014-05-12             G/L  2015-01-09
2         107   10120      1    2014-05-12             G/L  2015-11-10
3         107   10120      1    2014-05-12             G/L  2014-06-18
4         107   10120      1    2014-05-12             G/L  2014-05-12
5         107   10120      1    2014-05-12             G/L  2015-07-10
6         107   10120      1    2014-05-12             G/L  2015-10-09
7         107   10120      1    2014-05-12             G/L  2016-04-08
8         107   10120      1    2014-05-12             G/L  2016-01-08
9         107   10120      1    2014-05-12             G/L  2016-12-22
10        107   10120      1    2014-05-12             G/L  2017-01-13
11        107   10120      1    2014-05-12             G/L  2016-07-08
12        107   10120      1    2014-05-12             G/L  2017-04-14
13        107   10120      1    2014-05-12             G/L  2017-04-17
14        107   10120      1    2014-05-12             G/L  2016-08-31
15        107   10120      1    2014-05-12             G/L  2015-04-10
16        107   10120      1    2014-05-12             G/L  2016-12-22

我需要输出格式为

      CUST_NO   ID_NO      SYMBOL  AUTO_CREATE_DT     CLASS_TYPE    SORT_DT
1         107     10120      1    2014-05-12             G/L     2014-05-12

如果有人对此有解决方案,请告诉我。

我还添加了新的数据集

df <- fread("CUST_NO ID_NO SYMBOL  AUTO_CREATE_DT     CLASS_TYPE    SORT_DT
         107   10120      1    2014-05-12             G/L  2015-01-09
        107   10120      1    2014-05-12             G/L  2015-11-10
        107   10120      1    2014-05-12             G/L  2014-06-18
        107   10120      1    2014-05-12             G/L  2014-05-13
        107   10120      1    2014-05-12             G/L  2015-07-10
        107   10120      1    2014-05-12             G/L  2015-10-09
        107   10120      1    2014-05-12             G/L  2016-04-08
        107   10120      1    2014-05-12             G/L  2016-01-08
        107   10120      1    2014-05-12             G/L  2016-12-22
        107   10120      1    2014-05-12             G/L  2017-01-13
        107   10120      1    2014-05-12             G/L  2016-07-08
        108   10120      1    2014-05-12             G/L  2017-04-14
        108   10120      1    2014-05-12             G/L  2017-04-17
        108   10120      1    2014-05-12             G/L  2016-08-31
        108   10120      1    2014-05-12             G/L  2015-04-10
        108   10120      1    2014-05-12             G/L  2016-12-22")

输出应该与下面不同

  CUST_NO   ID_NO      SYMBOL  AUTO_CREATE_DT     CLASS_TYPE    SORT_DT
1         107     10120      1    2014-05-12             G/L     2014-05-13
2         108     10120      1    2014-05-12             G/L     2015-04-10    

【问题讨论】:

    标签: r sorting date logic


    【解决方案1】:

    试试这个:

    aggregate(SORT_DT~.,min,data=df)
    

    输出:

      CUST_NO ID_NO SYMBOL AUTO_CREATE_DT CLASS_TYPE    SORT_DT
    1     107 10120      1     2014-05-12        G/L 2014-05-13
    2     108 10120      1     2014-05-12        G/L 2015-04-10
    

    【讨论】:

      【解决方案2】:

      试试aggregate

      res <- aggregate(SORT_DT ~ CUST_NO + ID_NO + SYMBOL + AUTO_CREATE_DT + CLASS_TYPE, data = df, FUN = min)
      res
        CUST_NO ID_NO SYMBOL AUTO_CREATE_DT CLASS_TYPE    SORT_DT
      1     107 10120      1     2014-05-12        G/L 2014-05-13
      2     108 10120      1     2014-05-12        G/L 2015-04-10
      

      【讨论】:

      • 拒绝投票者:您不能因为没有注意到 OP 在发布答案两小时后向问题添加了更多信息而责怪回答者。
      猜你喜欢
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 2023-03-31
      • 2017-02-18
      • 1970-01-01
      • 2017-04-30
      相关资源
      最近更新 更多