2011-06-16 66 views
4

如何使用两个数据集的每种可能组合创建数据集?如何在R中创建包含2个数据集的组合

例如,将有2个数据集与特定的列记:

ds1 = letters[1:4] 
ds2 = letters[5:8] 

另外还有价值与每个字母关联是否会影响任何东西(我不认为它应该,虽然)

ds1 = data.frame(a=letters[1:4],b=1:4) 
ds2 = data.frame(a=letters[5:8],b=5:8) 

在最后的数据集,我想为了有的ds1ds2每个组合(例如,AE,AF,AG等)

起初,我想过使用merge,所以我试图这样做,但它没有奏效。我在想,for循环可能是答案,但我不确定我会如何开始。

对此提出建议?谢谢!

回答

8

也许你想expand.grid()expand.grid()根据提供的矢量或因子的所有组合创建数据帧。 letters()包含字母的26个小写字母,所以我们可以索引中的第4(A - d)和接下来的四个(E - 八)进入expand.grid()

> expand.grid(letters[1:4], letters[5:8]) 
    Var1 Var2 
1  a e 
2  b e 
3  c e 
4  d e 
5  a f 
6  b f 
7  c f 
8  d f 
9  a g 
10 b g 
11 c g 
12 d g 
13 a h 
14 b h 
15 c h 
16 d h 
+0

对'expand.grid'的未充分使用的函数+1。 – 2011-06-16 08:42:08

6

看来,你想的笛卡尔乘积ds1和ds2。为此,请使用merge(ds1, ds2, by=NULL)

+0

是的!谢谢一堆。 – Anon 2011-06-16 01:54:08

相关问题