Cumulative minimum value by group

后端 未结 1 505
时光说笑
时光说笑 2020-12-12 00:00

I want to calculate cumulative min within a given group.

My current data frame:

Group <- c(\'A\', \'A\', \'A\',\'A\', \'B\', \'B\', \'B         


        
相关标签:
1条回答
  • 2020-12-12 00:14

    We could use cummin function by group

    data$output <- with(data, ave(Target, Group, FUN = cummin))
    
    data
    #  Group Target output
    #1     A      1      1
    #2     A      0      0
    #3     A      5      0
    #4     A      0      0
    #5     B      3      3
    #6     B      5      3
    #7     B      1      1
    #8     B      3      1
    

    whose dplyr and data.table equivalents are

    library(dplyr)
    data %>%
      group_by(Group) %>%
      mutate(output = cummin(Target))
    
    library(data.table)
    setDT(data)[, output := cummin(Target), by = (Group)]
    
    0 讨论(0)
提交回复
热议问题