如何在R中将函数应用于整个数据集

ztmd8pv5  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(96)
home_last3 = function(team,game){
g1 = filter(g, Team == team & Game > game)
g1 = head(g1, n=3)
return(sum(g1$goals))
}

print(home_last3("Arsenal","5"))
[1] 11

所以我有了上面这个函数,它的想法是在我所有英超联赛的数据集中,我想知道主队在他们之前的3场比赛中进了多少球,这个数据框g列出了每支球队的所有比赛和进球。
所以当我手动插入东西时,我的函数完全按照我想要的那样做。
但是,我想将此函数应用于原始数据集中的一个新列(Home_Last_3),在该列中,对于任何给定的比赛,它都可以查看主队的名称(col =“HomeTeam”)和比赛的编号(col=“Game”),并输出该编号。
然而,当我输入这个时:

df$Home_Last_3 = home_last3(df$HomeTeam,df$Game)

它只是在所有列中返回零。
我认为这与使用as.data.frame或sapply有关(但是sapply因为我在这里使用了第二个参数而对我很生气)。

lvmkulzt

lvmkulzt1#

尝试mapply,它是sapply的多元版本。如果我正确理解了你的函数,它应该可以工作:

df$Home_Last_3 = mapply(FUN=home_last3, df$HomeTeam, df$Game)

相关问题