gpt4 book ai didi

r - R 中是否有一种有效的方法将矩阵 M2 的每一行 "paste"到矩阵 M1 的每一行以获得所有可能的组合?

转载 作者:行者123 更新时间:2023-12-04 02:28:41 24 4
gpt4 key购买 nike

假设我有两个矩阵:

M1 <- matrix(letters[1:9], nrow = 3, ncol = 3, byrow = T)
M2 <- matrix(letters[10:18], nrow = 3, ncol = 3, byrow = T)

实际上我有 1000 行的大得多的矩阵。我想要的是在不使用 for 循环的情况下生成以下内容的有效方法,因为这会导致 R 崩溃。

result <- rbind(cbind(M1, matrix(rep(letters[10:12], 3), nrow = 3, ncol = 3, byrow = T)),
cbind(M1, matrix(rep(letters[13:15], 3), nrow = 3, ncol = 3, byrow = T)),
cbind(M1, matrix(rep(letters[16:18], 3), nrow = 3, ncol = 3, byrow = T)))

本质上是将 M2 的每一行“粘贴”到 M1 的每一行,这样我就有了所有可能的组合。

最佳答案

您可以使用 expand.gridM1M2 中创建所有可能的行索引组合。

mat <- expand.grid(1:nrow(M1), 1:nrow(M2))
cbind(M1[mat[[1]], ], M2[mat[[2]], ])

# [,1] [,2] [,3] [,4] [,5] [,6]
# [1,] "a" "b" "c" "j" "k" "l"
# [2,] "d" "e" "f" "j" "k" "l"
# [3,] "g" "h" "i" "j" "k" "l"
# [4,] "a" "b" "c" "m" "n" "o"
# [5,] "d" "e" "f" "m" "n" "o"
# [6,] "g" "h" "i" "m" "n" "o"
# [7,] "a" "b" "c" "p" "q" "r"
# [8,] "d" "e" "f" "p" "q" "r"
# [9,] "g" "h" "i" "p" "q" "r"

关于r - R 中是否有一种有效的方法将矩阵 M2 的每一行 "paste"到矩阵 M1 的每一行以获得所有可能的组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65639071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com