r - 如何使用从 R 中的另一个数据帧计算的值创建数据帧?
问题描述
我这周开始使用 R,如果这是一个简单的问题,请原谅。我想从我之前创建的另一个数据框创建一个数据框。第一个数据框是:
HomeTeam AwayTeam Hgoals Agoals
Parma Juventus 0 1
Fiorentina Napoli 3 4
Udinese Milan 1 0
Cagliari Brescia 0 1
Roma Genoa 3 3
Sampdoria Lazio 0 3
Spal Atalanta 2 3
....
现在我想创建一个数据框,显示整个赛季球队主客场进球的平均值。像这样的东西:
Team Hgoals(Avg) Agoals(Avg)
Parma 2.5 1.4
Fiorentina 1.3 2.1
Udinese 1.8 1.4
解决方案
我们可以使用:
merge(
with(df,aggregate(list(Hgoals.Avg = Hgoals),list(Team = HomeTeam), mean)),
with(df,aggregate(list(Agoals.Avg = Agoals),list(Team = AwayTeam), mean)),
by="Team",all=T
)
Team Hgoals.Avg Agoals.Avg
1 Cagliari 0 NA
2 Fiorentina 3 NA
3 Parma 0 NA
4 Roma 3 NA
5 Sampdoria 0 NA
6 Spal 2 NA
7 Udinese 1 NA
8 Atalanta NA 3
9 Brescia NA 1
10 Genoa NA 3
11 Juventus NA 1
12 Lazio NA 3
13 Milan NA 0
14 Napoli NA 4
如果需要这种替代解释。
with(df,aggregate(list(goals.for.Avg = Hgoals, goals.agaist.Avg = Agoals),list(Team = HomeTeam), mean))
Team goals.for.Avg goals.agaist.Avg
1 Cagliari 0 1
2 Fiorentina 3 4
3 Parma 0 1
4 Roma 3 3
5 Sampdoria 0 3
6 Spal 2 3
7 Udinese 1 0
推荐阅读
- python - 如何在 Python 中编辑图形(齐夫定律)
- python - Plotly:当超过 20 个点时,散点图的标记消失
- c# - 每次按下按钮时如何添加条目
- f# - 如何设置 Suave 以访问任何路由上的帖子消息,并绑定到“*”
- python - 使用 Selenium 获取段落元素的文本
- android - 插入新的 SQL Server 记录时如何在 Android 应用程序中获得通知
- java - javax.validation 不验证数据对象
- firebase - 即使 firebase init 命令有效,firebase deploy 也不起作用
- xml - 已发现路径的 http 方法:/
- python - 为什么“multiprocessing.Pool”在 Windows 上无休止地运行?