【问题标题】:Take maximum values and move into new columns取最大值并移入新列
【发布时间】:2020-08-12 21:18:57
【问题描述】:
ID Date      Paid
1  1/1/2006  $500
1  2/5/2010  $300
2  5/3/2013  $600
2  6/7/2018  $700

我想通过 ID 获取最大日期并将这些行中的信息分散到新列中:

ID Date      Paid   Max. Date Max. Paid
1  1/1/2006  $500   2/5/2010  $300
2  5/3/2013  $600   6/7/2018  $700

我该怎么做?

【问题讨论】:

    标签: r spread


    【解决方案1】:

    我们可以的

    library(dplyr)
    df1 %>%  
        mutate(Date = as.Date(Date, '%m/%d/%Y')) %>%
        arrange(ID, Date) %>%
        group_by(ID) %>% 
        summarise(Max.Date = last(Date), Max.Paid = last(Paid), 
              Paid = first(Paid), Date = first(Date))    
    # A tibble: 2 x 5
    #     ID Max.Date   Max.Paid Paid  Date      
    #  <int> <date>     <chr>    <chr> <date>    
    #1     1 2010-02-05 $300     $500  2006-01-01
    #2     2 2018-06-07 $700     $600  2013-05-03
    

    数据

    df1 <- structure(list(ID = c(1L, 1L, 2L, 2L), Date = c("1/1/2006", "2/5/2010", 
    "5/3/2013", "6/7/2018"), Paid = c("$500", "$300", "$600", "$700"
    )), class = "data.frame", row.names = c(NA, -4L))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-27
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2022-11-22
      • 2023-02-23
      • 2014-12-21
      相关资源
      最近更新 更多