我是R的新手,也是stackoverflow的新手,所以如果我在这里做错了,请忍受...
因此,我正在研究足球数据,如下所示:
Div Date HomeTeam AwayTeam FTHG FTAG avgHG_league avgHG_team
1 D1 14/08/15 Bayern Munich Hamburg 5 0 NA 0
2 D1 15/08/15 Augsburg Hertha 0 1 5.000000 0
3 D1 15/08/15 Darmstadt Hannover 2 2 2.500000 0
4 D1 15/08/15 Dortmund M'gladbach 4 0 2.333333 0
5 D1 15/08/15 Leverkusen Hoffenheim 2 1 2.750000 0
6 D1 15/08/15 Mainz Ingolstadt 0 1 2.600000 0
我创建了avgHG_league列,使用以下代码为我提供本赛季到目前为止本国球队的平均进球数:
BLfiltered <- BLfiltered %>%
mutate(avgHG_league = lag(cummean(FTHG),1))
现在,在avgHG_team专栏中,我想要做的几乎相同,但不是计算所有主队的进球,平均起来,我只是想计算平均值的只有目标这个特殊的hometeam已在国内取得了迄今为止在季节(但不包括此游戏)...
你有什么想法?
谢谢!
/ E:“ FTHG”列为我们提供了每场比赛的主场进球
这是我的解决方案。它使用了dplyr软件包,我假设您已cummean
在示例中调用它,因此我认为您已经在使用它。为了简单起见,我将数据称为sd
足球数据。
sd = mutate(sd,avgHG_league=lag(cummean(FTHG),1,0)) %.% group_by(HomeTeam) %.% mutate(avgHG_Team=lag(cummean(FTHG),1,0)) %.% ungroup()
注意:0
在滞后声明中(技术上default=0
)添加,0
而不是NA
您认为是您想要的初始值。
以下虚拟数据的结果
Div Date HomeTeam AwayTeam FTHG FTAG
1 D1 14/08/15 Bayern Munich Hamburg 5 0
2 D1 15/08/15 Augsburg Hertha 0 1
3 D1 15/08/15 Darmstadt Hannover 2 2
4 D1 15/08/15 Dortmund M'gladbach 4 0
5 D1 15/08/15 Leverkusen Hoffenheim 2 1
6 D1 15/08/15 Mainz Ingolstadt 0 1
7 D1 15/09/15 Bayern Munich Hamburg 0 0
8 D1 15/10/15 Augsburg Hertha 0 0
9 D1 15/10/15 Darmstadt Hannover 0 0
10 D1 15/10/15 Dortmund M'gladbach 0 0
11 D1 15/10/15 Leverkusen Hoffenheim 0 0
12 D1 15/10/15 Mainz Ingolstadt 0 0
13 D1 15/11/15 Bayern Munich Hamburg 0 0
14 D1 15/10/16 Augsburg Hertha 0 0
15 D1 15/11/16 Darmstadt Hannover 0 0
16 D1 15/10/17 Dortmund M'gladbach 0 0
17 D1 15/11/17 Leverkusen Hoffenheim 0 0
18 D1 15/10/18 Mainz Ingolstadt 0 0
Div Date HomeTeam AwayTeam FTHG FTAG avgHG_league avgHG_Team
1 D1 14/08/15 Bayern Munich Hamburg 5 0 0.0000000 0.0
2 D1 15/08/15 Augsburg Hertha 0 1 5.0000000 0.0
3 D1 15/08/15 Darmstadt Hannover 2 2 2.5000000 0.0
4 D1 15/08/15 Dortmund M'gladbach 4 0 2.3333333 0.0
5 D1 15/08/15 Leverkusen Hoffenheim 2 1 2.7500000 0.0
6 D1 15/08/15 Mainz Ingolstadt 0 1 2.6000000 0.0
7 D1 15/09/15 Bayern Munich Hamburg 0 0 2.1666667 5.0
8 D1 15/10/15 Augsburg Hertha 0 0 1.8571429 0.0
9 D1 15/10/15 Darmstadt Hannover 0 0 1.6250000 2.0
10 D1 15/10/15 Dortmund M'gladbach 0 0 1.4444444 4.0
11 D1 15/10/15 Leverkusen Hoffenheim 0 0 1.3000000 2.0
12 D1 15/10/15 Mainz Ingolstadt 0 0 1.1818182 0.0
13 D1 15/11/15 Bayern Munich Hamburg 0 0 1.0833333 2.5
14 D1 15/10/16 Augsburg Hertha 0 0 1.0000000 0.0
15 D1 15/11/16 Darmstadt Hannover 0 0 0.9285714 1.0
16 D1 15/10/17 Dortmund M'gladbach 0 0 0.8666667 2.0
17 D1 15/11/17 Leverkusen Hoffenheim 0 0 0.8125000 1.0
18 D1 15/10/18 Mainz Ingolstadt 0 0 0.7647059 0.0
可以在此处看到类似的数据处理方法:https : //blog.rstudio.org/2014/01/17/introducing-dplyr/
这也是使用tidyr和dplyr在R中进行数据操作的重要资源:https ://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句