我试图在数据框中按组运行最大列。我可以通过以下循环执行此操作,但我想知道是否有这样做的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)))
感谢您的帮助!