dplyr找到最大运行

时间:2017-02-27 11:50:29

标签: r dplyr zoo

我试图在数据框中按组运行最大列。我可以通过以下循环执行此操作,但我想知道是否有这样做的dplyr方法:

df <- data.frame(class=rep(LETTERS,each=20),
                          value=100*rpois(20*26,10))

df$runningMax <- df$value

for (i in 2:nrow(df)) {
  if (df$class[i]==df$class[i-1]) {
    # Running max of class
    df$runningMax[i] = max(df$runningMax[i],df$runningMax[i-1])
  }
}

这是我的dplyr尝试:

x <- df %>%
  group_by(class) %>%
      mutate(running_max = value) %>%
      mutate(running_max = max(running_max, lag(running_max)))

感谢您的帮助!

0 个答案:

没有答案