我有 5 个项目,每个项目的值都可以为 1 或 -1。我想生成一个由可能组合的行组成的矩阵。项目的顺序无关紧要,组合的顺序无关紧要。我知道我可以机械地做到这一点,但我认为有人必须知道生成这个矩阵的捷径。如果这与其他问题相似,我深表歉意,但我发现的任何解决方案都不能以我的编程技能应用于这个特定问题。
问问题
19379 次
3 回答
33
expand.grid(c(-1,1), c(-1,1), c(-1,1), c(-1,1), c(-1,1))
于 2010-10-22T03:04:13.097 回答
22
概括格雷格的答案:
N <- 5
vec <- c(-1, 1)
lst <- lapply(numeric(N), function(x) vec)
as.matrix(expand.grid(lst))
于 2010-10-22T11:32:00.503 回答
7
data.table
与以下相比,包中的替代方案稍快expand.grid
:
library(data.table)
CJ(c(-1,1), c(-1,1), c(-1,1), c(-1,1), c(-1,1))
于 2016-05-17T12:09:11.183 回答