如何使用两个数据集中的每种可能组合创建数据集?
例如,会有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)
在最终数据集中,我希望有ds1
和ds2
的每个组合(例如,ae,af,ag等)
起初我想过使用merge
,所以我尝试过这样做,但它没有用。我认为for循环可能就是答案,但我不确定如何开始。
连连呢?谢谢!
答案 0 :(得分:8)
也许你想要expand.grid()
? expand.grid()
根据提供的向量或因子的所有组合创建数据框。 letters()
包含26个小写字母,因此我们可以将前4个(A - D)和后4个(E - H)编入索引以传入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
答案 1 :(得分:6)
您似乎想要ds1和ds2的笛卡尔积。为此,请使用merge(ds1, ds2, by=NULL)
。