簡體   English   中英

矩陣與向量值的所有可能組合

[英]All possible combinations of matrices with values from vectors

如何獲得所有可能的 2 by v 矩陣,其中 v 是任意長度的向量的數量,填充了向量的值。

例如,我得到了三個向量A = c(1,2,3) B = c("x","z") C = c(1,0)

假設現在,我想獲得所有可能的 2 x 3 矩陣或數據幀,這些矩陣或數據幀源自上述向量的值。

最后,我想要這樣的東西:

       combination_id first_row A B C
    1:              1         1 0 x 0
    2:              2         0 1 x 1
    3:              3         1 1 z 0
    4:              4         0 0 z 1
    5:              5         1 0 x 0
    6:              6         0 1 x 0
    7:              :               
    8:              :               

這給出了每個集合中兩個元素的所有可能組合(允許替換),總共提供 144 個矩陣。 然后將它們綁定在一起以提供一個 288 行的數據幀:

A = c(1,2,3) 
B = c("x","z") 
C = c(1,0)

df <- setNames(as.data.frame(do.call(rbind, 
      lapply(as.data.frame(t(expand.grid(A, B, C, A, B, C))), 
             matrix, nrow = 2, byrow = TRUE))), 
      c("A", "B", "C"))

head(df)
#>   A B C
#> 1 1 x 1
#> 2 1 x 1
#> 3 2 x 1
#> 4 1 x 1
#> 5 3 x 1
#> 6 1 x 1

nrow(df)
#> [1] 288

reprex 包(v0.3.0) 於 2020 年 9 月 6 日創建

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM