2016-04-03 42 views
0

我有,例如,足球比赛结果如下的“融化”数据集:返回赢家设置

library(data.table) 
match.data <- " 
game,team,score 
1,newcastle,3 
1,aston villa,2 
2,chelsea,1 
2,fulham,1 
3,leicester,28 
3,man city,0 
" 
DT <- data.table(read.csv(textConnection(match.data))) 

每一行给出了球队的一个得分的进球数在比赛中。我想创建一个谁赢了比赛的数据集(如果是平局的话,NA)。对于我的例子,这将产生:

game winner 
1: 1 newcastle 
2: 2  NA 
3: 3 leicester 

其次,我如何描述我想用英语做什么!?!我按比赛分组,并返回对应于他们得分的最大功能的球队名称。我不知道如何正确描述这个操作,所以不得不使用一个例子!

虽然我想要一个使用data.tabledplyr(或甚至基R!)的解决方案也是可以接受的。我使用data.table进行说明。如果team存储为factor

DT[ , if (diff(score) == 0) NA_character_ else team[which.max(score)], by = game] 

更改为NA_integer_

+0

你真的只是聚合 – MichaelChirico

+0

谢谢,仍然发现术语有点棘手。 – kungfujam

+0

@Downvoter - 请你能提供一些反馈吗? – kungfujam

回答