【发布时间】:2015-08-27 03:16:59
【问题描述】:
我的数据的小代表:
Date <- as.Date(rep(c("2015-05-14", "2015-05-15","2015-05-16"),c(4,2,1)))
TEAM1 <- c("GSW","SAS","MIL","ATL","GSW","SAC","LAL")
TEAM2 <- c("HOU","MIN","NOP","LAL","SAS","TOR","GSW")
PCW_TEAM1 <- c(0.88,0.72,0.34,0.46,0.87,0.28,0.24)
PCW_TEAM2 <- c(0.67,0.31,0.52,0.23,0.74,0.48,0.90)
df <- data.frame(cbind(Date,TEAM1,TEAM2,PCW_TEAM1,PCW_TEAM2), stringsAsFactors=F)
df
Date TEAM1 TEAM2 PCW_TEAM1 PCW_TEAM2
1 16569 GSW HOU 0.88 0.67
2 16569 SAS MIN 0.72 0.31
3 16569 MIL NOP 0.34 0.52
4 16569 ATL LAL 0.46 0.23
5 16570 GSW SAS 0.87 0.74
6 16570 SAC TOR 0.28 0.48
7 16571 LAL GSW 0.24 0.9
想象一下这是 NBA 赛季的前 7 场比赛。第一个日期 (16569) 有四场比赛,因此排名将超过 8。但是,一旦我们添加下一个日期 (16570),就会有两场比赛,而且只有两支新球队,因为 GSW 和 SAS 已经在第一场比赛日期。
我想根据最后可用日期的获胜百分比对独特的团队进行排名。输出如下所示:
Date TEAM1 TEAM2 PCW_TEAM1 PCW_TEAM2 RANK_TEAM1 RANK_TEAM2
1 16569 GSW HOU 0.88 0.67 1 3
2 16569 SAS MIN 0.72 0.31 2 7
3 16569 MIL NOP 0.34 0.52 6 4
4 16569 ATL LAL 0.46 0.23 5 8
5 16570 GSW SAS 0.87 0.74 1 2
6 16570 SAC TOR 0.28 0.48 9 5
7 16571 LAL GSW 0.24 0.9 10 1
请注意,在第 5 行,GSW 的获胜百分比为 0.87,排名为 1。在第一行,获胜百分比更高 (0.88),但也是 GSW。
在此示例中,有 7 场比赛和 10 支独特的球队。根据真实数据,有 30 个独特的团队。
unique(c(TEAM1,TEAM2))
[1] "GSW" "SAS" "MIL" "ATL" "SAC" "LAL" "HOU" "MIN" "NOP" "TOR"
我想创建一个向量来收集每个独特团队的最后可用获胜百分比,然后根据该信息对团队进行排名,但不知道如何去做,或者这是否是最佳方法。
【问题讨论】: