来自两个(或更多)向量的所有元素的独特组合
我试图在R中创build两个不同大小向量的所有元素的独特组合。
例如,第一个向量是
> a <- c("ABC", "DEF", "GHI")
第二个是当前存储为string的date
> b <- c("2012-05-01", "2012-05-02", "2012-05-03", "2012-05-04", "2012-05-05")
我需要创build一个这样的两列的数据框
> data ab 1 ABC 2012-05-01 2 ABC 2012-05-02 3 ABC 2012-05-03 4 ABC 2012-05-04 5 ABC 2012-05-05 6 DEF 2012-05-01 7 DEF 2012-05-02 8 DEF 2012-05-03 9 DEF 2012-05-04 10 DEF 2012-05-05 11 GHI 2012-05-01 12 GHI 2012-05-02 13 GHI 2012-05-03 14 GHI 2012-05-04 15 GHI 2012-05-05
所以基本上,我正在寻找一个独特的组合,通过考虑一个向量(a)与第二个向量(b)的所有元素并列的所有元素。
一个理想的解决scheme将推广到更多的input向量。
也可以看看:
如何生成组合matrix
这也许是你以后的事情
> expand.grid(a,b) Var1 Var2 1 ABC 2012-05-01 2 DEF 2012-05-01 3 GHI 2012-05-01 4 ABC 2012-05-02 5 DEF 2012-05-02 6 GHI 2012-05-02 7 ABC 2012-05-03 8 DEF 2012-05-03 9 GHI 2012-05-03 10 ABC 2012-05-04 11 DEF 2012-05-04 12 GHI 2012-05-04 13 ABC 2012-05-05 14 DEF 2012-05-05 15 GHI 2012-05-05
如果由此产生的顺序不是你想要的,你可以事后sorting。 如果您将参数命名为expand.grid
,它们将成为列名称:
df = expand.grid(a = a, b = b) df[order(df$a), ]
而expand.grid
概括为任意数量的input列。