我一直在尝试使用此公式一段时间,因为我试图获取每个足球队在数据集中得分的进球数。我能够找出他们在家或客场进球数。但是我很难将两者结合在一起。
这是我完成的代码的示例。我可以将FTHG(全时主场进球)列中得分的目标加起来,但目前仅基于主队进球。
goalsScored <- aggregate(FTHG ~ HomeTeam, matchData, sum)
我知道我也必须添加客场进球,但是我需要它,因此它只计算特定球队得分远的进球。在这里,这是主队每场比赛的主场进球和客场进球,而不是对应于他们在家还是客场比赛的数量。
goalsScored <- aggregate(FTHG + FTAG ~ HomeTeam, matchData, sum)
这是一个示例表(matchData):
---------------------------------
HomeTeam | AwayTeam | FTHG | FTAG
TeamA | TeamB | 3 | 1
TeamC | TeamD | 1 | 0
TeamB | TeamA | 2 | 2
TeamD | TeamC | 0 | 3
输出应如下所示(goalsScored):
---------------------------------
Team | GoalsScored
TeamA | 5
TeamB | 3
TeamC | 4
TeamD | 0
答案 0 :(得分:0)
使用您的示例:
df<-data.frame(HomeTeam = c("TeamA","TeamC","TeamB","TeamD"),
AwayTeam = c("TeamB","TeamD","TeamA","TeamC"),
FTHG = c(3,1,2,0),
FTAG = c(1,0,2,3))
您可以使用Base R来执行此操作,但是dplyr
使其更易于逐步执行。为每个team
列建立索引,然后使用rbind
按行将它们绑定起来,就可以对它们进行汇总。您可以根据需要将其另存为单独的数据框。
这是您的输出:
library(dplyr)
rbind(data.frame(Team = df[,1], Goals_Scored = df[,3]),
data.frame(Team = df[,2], Goals_Scored = df[,4])) %>%
group_by(Team) %>%
summarize(Goals_Scored = sum(Goals_Scored))
Team | Goals Scored
TeamA | 5
TeamB | 3
TeamC | 4
TeamD | 0