作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有每个赛季每个球员的进球数据:
playerID <- c(1,2,3,1,2,3,1,2,3,1,2,3)
year <- c(2002,2000,2000,2003,2001,2001,2000,2002,2002,2001,2003,2003)
goals <- c(25,21,27,31,39,34,42,44,46,59,55,53)
my_data <- data.frame(playerID, year, goals)
我想绘制每个玩家在一段时间内的累计进球数:
ggplot(my_data, aes(x=year, y=cumsum_goals, group=playerID)) + geom_line()
我已经尝试使用 dplyr
中的 summarize
,但这只适用于数据已经按 year
排序的情况(参见播放器 1):
new_data <- my_data %>%
group_by(playerID) %>%
mutate(cumsum_goals=cumsum(goals))
有没有办法让这段代码对年份不按时间顺序排列的数据具有鲁棒性?
最佳答案
我们可以通过playerID
和year
排列
,取cumsum
然后绘制
library(dplyr)
library(ggplot2)
my_data %>%
arrange(playerID, year) %>%
group_by(playerID) %>%
mutate(cumsum_goals=cumsum(goals)) %>%
ggplot() + aes(x=year, y= cumsum_goals, color = factor(playerID)) + geom_line()
关于r - 随着时间的推移获得累积和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57881312/
我是一名优秀的程序员,十分优秀!