R で、異なるサイズの 2 つのベクトルのすべての要素の一意の組み合わせを作成しようとしています。
例えば、最初のベクトルは
a <- c("ABC", "DEF", "GHI")
2つ目は、現在文字列として保存されている日付です
b <- c("2012-05-01", "2012-05-02", "2012-05-03", "2012-05-04", "2012-05-05")
このような2つの列を持つデータフレームを作成する必要があります
> data
a b
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
つまり、基本的には、1 つのベクトル (a) のすべての要素と 2 番目のベクトル (b) のすべての要素を並べて考慮し、一意の組み合わせを探しています。
理想的なソリューションは、より多くの入力ベクトルに一般化されます。
ベストアンサー1
これがあなたが求めているものかもしれません
> 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
結果の順序が希望どおりでない場合は、後で並べ替えることができます。 の引数に名前を付けると、expand.grid
列名になります。
df = expand.grid(a = a, b = b)
df[order(df$a), ]
expand.grid
任意の数の入力列に一般化されます。