【发布时间】:2017-12-06 14:54:28
【问题描述】:
我有一个这样的独特匹配数据集。每一行都与结果匹配。
date <- c('2017/12/01','2017/11/01','2017/10/01','2017/09/01','2017/08/01','2017/07/01','2017/06/01')
team1 <- c('A','B','B','C','D','A','B')
team1_score <- c(1,0,4,3,5,6,7)
team2 <- c('B','A','A','B','C','C','A')
team2_score <- c(0,1,5,4,6,9,10)
matches <- data.frame(date, team1, team1_score, team2, team2_score)
我想创建 2 个新栏目,分别为第 1 队和第 2 队的表格。比赛的结果可以由哪支球队的得分更高或平局来决定。结果如下所示。所以表格将是 team1 在最后 2 场比赛中的结果。例如,对于前 3 行,队 1 和 2 的形式分别是。有时某支球队没有足够的 2 场比赛,因此 NULL 的结果就足够了。我想知道 team1 和 team2 进入比赛的形式。
- Form1:W-W、L-W、W-L
- Form2:L-L、W-L、L-W
在实际数据集中,不仅仅是 4 个独特的团队。我一直在思考,但想不出创建这两个变量的好方法。
【问题讨论】:
-
您如何知道结果? 'B' 分数是否超过 1 分?
-
请提供一个可重现的例子。寻找函数 dput() 来帮助您提供可重现的数据集。你有很多选择。如果数据是长格式(即“整齐”),则您可能会获得胜利和失败的滚动总和,这将产生格式为 W|L 的结果,或者根据您的示例,3|2。您还可以有一个 if_else 函数创建一个字母字符串形式的数学结果滚动到最后五次迭代,然后连接这些字符串。
-
@Gregor:是的,球队可以在Team1或Team2,如果他们的分数更大,那就意味着他们赢了。
-
要解决这个问题,第一步是获取数据。如果您共享数据,而不是让任何致力于解决此问题的人来做创建假数据的工作,那将是非常好的。您不需要分享太多,但需要与大约 3 支球队分享 6-10 行比赛。如果您的示例数据是可复制/可粘贴的,您将更快地获得帮助,方法是共享代码以模拟它或共享
dput()的输出以创建其结构。 There are lots of tips on making R reproducible examples here. -
@Gregor:我已经调整了上面的问题以使其更清晰。