我希望按名称获得平均得分。
这是一个示例数据框
Date Name Score
1/1/16 Bill 5
1/1/16 Hank 5
1/1/16 Aaron 10
1/2/16 Hank 15
1/2/16 Bill 10
1/3/16 Bill 20
1/3/16 Aaron 20
1/4/16 Aaron 20
如何添加此列?
Date Name Score Average_to_date
1/1/16 Bill 5 NA
1/1/16 Hank 5 NA
1/1/16 Aaron 10 NA
1/2/16 Hank 15 5
1/2/16 Bill 10 5
1/3/16 Bill 20 7.5
1/3/16 Aaron 20 10
1/4/16 Aaron 20 15
答案 0 :(得分:2)
如果您不介意使用dplyr
:
library(dplyr)
your_data %>%
arrange(Date) %>%
group_by(Name) %>%
mutate(Average_to_date = lag(cummean(Score))
如果您确定数据框已按日期排序,则可以省略arrange
。否则,请在安排之前确保Date
列属于Date
课程 - 有关详细信息,请参阅?as.Date
。