gpt4 book ai didi

R:cummean() 在子集上

转载 作者:行者123 更新时间:2023-12-04 21:09:20 24 4
gpt4 key购买 nike

我是 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 列中,我想做几乎相同的事情,但不是计算所有主队的进球平均值,我只想计算仅 的进球平均值。这个特别的主队主场进球 到目前为止在本赛季(但不包括本场比赛)...

你有什么想法?

谢谢!

/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

关于R:cummean() 在子集上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38021952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com