r - 如何根据其他两列的条件对 R 中两列的值求和?
问题描述
HomeTeam AwayTeam FTHG FTAG FTR HST AST
1 Aston Villa Wigan 0 2 A 5 7
26 Liverpool Aston Villa 1 3 A 12 4
34 Aston Villa Fulham 2 0 H 4 3
45 Birmingham Aston Villa 0 1 A 7 5
48 Aston Villa Portsmouth 2 0 H 5 12
58 Blackburn Aston Villa 2 1 H 7 5
76 Aston Villa Man City 1 1 D 6 7
我有一个数据框“mydata”的一部分,如上所示。它显示了英格兰足球比赛的结果。
我想总结像阿斯顿维拉这样的球队的进球数,可能是通过循环遍历数据框。当他们是主队时,这需要计算维拉的 FTHG,而当他们是客队时,需要计算维拉的 FTAG。
我试过了
with(mydata, sum(FTHG[HomeTeam == "Aston Villa"] | FTAG[AwayTeam == "Aston Villa"]))
和
sum(subset(mydata,(HomeTeam == "Aston Villa")$FTHG|(AwayTeam == "Aston Villa")$FTAG))
和
sum(subset(mydata,(HomeTeam == "Aston Villa")$FTHG|subset(mydata,(AwayTeam == "Aston Villa")$FTAG)))
没有一个奏效。
我想要的是要显示的总数。这可以在不分别汇总主客场数据然后相加的情况下完成吗?
解决方案
也许我们可以做
sum(unlist(Map(function(x, y) x[y], mydata[c("FTHG", "FTAG")],
list(mydata$HomeTeam=="Aston Villa", mydata$AwayTeam=="Aston Villa"))))
推荐阅读
- wpf - 我可以同时拥有代码隐藏 Click 事件和命令吗?
- javascript - Npm 和节点导入
- elixir - 是否可以将 Ueberauth 配置为使用 Github Enterprise 登录?
- python-3.x - 涡轮增压 lambda 函数比较两个数据帧中的值
- javascript - 即使客户端没有提供回调,有没有办法从服务器发送响应?
- javascript - 在下拉菜单上使用锚标记进行页面导航
- javascript - 有没有办法创建一个可以读取它所在目录的模块?(打字稿/JavaScript)
- java - 在静态成员类中展平 JUnit 测试
- ios - 如何在 SwiftUI 中迭代/foreach 数组
- python - 使用 mypy 的子类型