对不起,我不能为标题想出一个更好的名称,我非常努力地用单词解释手头的问题,所以让我展示代替数据帧的例子。R数据框 - 在一列中使用公共值来查找另一列中的值
dput(DF)
structure(list(game_id = c(162044, 162044, 162044, 162044, 162044,
162044, 162044, 162044, 162044, 162044, 162044, 162044, 162044,
162044, 162044, 166807, 166807, 166807, 166807, 166807, 166807,
166807, 166807, 166807, 166807, 166807, 166807, 166807, 166807,
166807, 166807, 166807, 166807, 166807, 167948, 167948, 167948,
167948, 167948, 167948, 167948, 167948, 167948, 167948, 167948,
167948, 167948, 167948, 167948, 167948), team_id = c(108738,
108738, 108738, 108738, 108738, 108738, 108738, 126351, 126351,
126351, 126351, 126351, 126351, 126351, 126351, 54161, 54161,
54161, 54161, 54161, 54161, 54161, 54161, 133418, 133418, 133418,
133418, 133418, 133418, 133418, 133418, 133418, 54161, 54161,
54161, 54161, 54161, 54161, 54161, 54161, 54161, 135796, 135796,
135796, 135796, 135796, 135796, 135796, 135796, 135796)), .Names = c("game_id",
"team_id"), row.names = c(NA, 50L), class = "data.frame")
head(DF)
game_id team_id
1 162044 108738
2 162044 108738
3 162044 108738
4 162044 108738
5 162044 108738
6 162044 108738
7 162044 108738
8 162044 126351
9 162044 126351
10 162044 126351
11 162044 126351
12 162044 126351
13 162044 126351
14 162044 126351
15 162044 126351
16 166807 54161
17 166807 54161
18 166807 54161
19 166807 54161
20 166807 54161
21 166807 54161
22 166807 54161
23 166807 54161
24 166807 133418
25 166807 133418
26 166807 133418
27 166807 133418
28 166807 133418
29 166807 133418
30 166807 133418
31 166807 133418
32 166807 133418
33 166807 54161
34 166807 54161
35 167948 54161
36 167948 54161
37 167948 54161
38 167948 54161
39 167948 54161
40 167948 54161
41 167948 54161
42 167948 135796
43 167948 135796
44 167948 135796
45 167948 135796
46 167948 135796
47 167948 135796
48 167948 135796
49 167948 135796
50 167948 135796
这是我正在使用的数据帧。重要的是,对于每个game_id,有两个team_id。如果它有助于解决问题,那么game_ids就会全部排序,并且可以对team_ids进行分组,以便为每个game_id显示第一个team_id的所有实例,然后显示第二个team_id的所有实例(目前情况并非如此,因为你可以在第33和34行看到)。我需要创建一个名为team2_id的第三列,其中这个列是其他与game_id对应的team_id。期望输出的例子如下:
head(DF)
game_id team_id team2_id
1 162044 108738 126351
2 162044 108738 126351
3 162044 108738 126351
4 162044 108738 126351
5 162044 108738 126351
6 162044 108738 126351
7 162044 108738 126351
8 162044 126351 108738
9 162044 126351 108738
10 162044 126351 108738
11 162044 126351 108738
12 162044 126351 108738
13 162044 126351 108738
14 162044 126351 108738
15 162044 126351 108738
16 166807 54161 133418
17 166807 54161 133418
18 166807 54161 133418
19 166807 54161 133418
20 166807 54161 133418
21 166807 54161 133418
22 166807 54161 133418
23 166807 54161 133418
24 166807 133418 54161
25 166807 133418 54161
26 166807 133418 54161
27 166807 133418 54161
28 166807 133418 54161
29 166807 133418 54161
30 166807 133418 54161
31 166807 133418 54161
32 166807 133418 54161
33 166807 54161 133418
34 166807 54161 133418
35 167948 54161 135796
36 167948 54161 135796
37 167948 54161 135796
38 167948 54161 135796
39 167948 54161 135796
40 167948 54161 135796
41 167948 54161 135796
42 167948 135796 54161
43 167948 135796 54161
44 167948 135796 54161
45 167948 135796 54161
46 167948 135796 54161
47 167948 135796 54161
48 167948 135796 54161
49 167948 135796 54161
50 167948 135796 54161
乍一看,我没想到我会与这种类型的数据操纵的斗争,但我不幸发现这是相当困难的。任何帮助,将不胜感激!
谢谢,
你需要重复的行吗? – AlexR
行在数据框中重复出现,是的。该数据框对应于篮球游戏,并且每一行对应于特定玩家(因此对于任何给定的游戏和团队,有8-10个玩家玩过) – Canovice
好吧,可以用加入来实现。注意你所希望的输出会错过所属队员的信息;我的解决方案包含此信息。如果你不想要它,只需放下'team_id'列并根据需要重命名列'team1_id'和'team2_id'。 – AlexR