【发布时间】:2018-02-26 12:25:56
【问题描述】:
我有一个数据集,由两列 player1 和 player2 组成,用于一组 n 个玩家。每 2 名玩家互相玩两次(一次 i 为 player1,j 为 player2,一次 i 为 player2,j 为 player1)
我想分离我的数据,以便我有一个 games1 数据框,其中包含两个玩家的第一场比赛的所有游戏和一个数据框 game2,其中包括他们所有的第二场比赛(显然每个子数据框是一半我原始数据框的大小)
我考虑过使用 for 循环遍历所有行并定义一个标志来确定这是否是两个玩家正在玩的第一个游戏。我只是想知道是否有更简单/更快的方法。
我有一个 data.frame()
# reproducible exmaple
df1 <- read.table(text = "player1 player2
1: 1 2
2: 2 3
3: 3 2
4: 1 3
5: 2 1
6: 3 1", header = TRUE)
我需要:
data.frame()
player1 player2
1: 1 2
2: 2 3
3: 1 3
和
1: 3 2
2: 2 1
3: 3 1
【问题讨论】:
-
最终
df1$game <- ifelse(df$player1<df$player2, 1, 2)用于定义分组变量。 -
@jogo 这个例子是偶然的,我的数据是按时间排序的。
3作为player1和2作为player2之间的游戏可以在2作为player1和3作为3作为player2之前进行,所以我必须根据他们的顺序对它们进行分组