3 回答

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
這也許是你想要的
> 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
如果得到的訂單不是您想要的,那么您可以隨后進(jìn)行排序。如果您將參數(shù)命名為expand.grid,它們將成為列名:
df = expand.grid(a = a, b = b)
df[order(df$a), ]
和expand.grid概括為任意數(shù)量的輸入列。

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
這個(gè)tidyr軟件包提供了一個(gè)不錯(cuò)的選擇crossing,這比經(jīng)典的要好得多。expand.grid函數(shù),因?yàn)?1)字符串沒有轉(zhuǎn)換為因子,(2)排序更直觀:
library(tidyr)
a <- c("ABC", "DEF", "GHI")
b <- c("2012-05-01", "2012-05-02", "2012-05-03", "2012-05-04", "2012-05-05")
crossing(a, b)
# A tibble: 15 x 2
a b
<chr> <chr>
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

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
CJ
library(data.table)CJ(a = a, b = b, unique = TRUE)
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-0410: DEF 2012-05-0511: GHI 2012-05-0112: GHI 2012-05-0213: GHI 2012-05-0314: GHI 2012-05-0415: GHI 2012-05-05
CJ(a, b, unique = TRUE)
options("datatable.CJ.names" = TRUE)
- 3 回答
- 0 關(guān)注
- 740 瀏覽
添加回答
舉報(bào)