如何生成组合矩阵

发布于 2024-09-28 20:43:38 字数 152 浏览 3 评论 0原文

我有 5 个项目,每个项目的值为 1 或 -1。我想生成一个由可能组合的行组成的矩阵。项目的顺序并不重要,组合的顺序也不重要。我知道我可以机械地完成此操作,但我认为必须有人知道生成此矩阵的快捷方式。如果这与其他问题类似,我深表歉意,但我找到的解决方案都不能以我的编程技能应用于这个特定问题。

I have 5 items each of which can take on the value of 1 or -1. I want to generate a matrix that consists of rows of the possible combinations. The order of the items does not matter and the order of the combinations does not matter. I know I could do this mechanically, but I thought that someone must know a shortcut to generating this matrix. I apologize if this is similar to other questions but none of the solutions I have found can be applied to this particular problem with my programming skills.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梓梦 2024-10-05 20:43:38
expand.grid(c(-1,1), c(-1,1), c(-1,1), c(-1,1), c(-1,1))
expand.grid(c(-1,1), c(-1,1), c(-1,1), c(-1,1), c(-1,1))
屌丝范 2024-10-05 20:43:38

概括格雷格的答案:

N   <- 5
vec <- c(-1, 1)
lst <- lapply(numeric(N), function(x) vec)
as.matrix(expand.grid(lst))

To generalize Greg's answer:

N   <- 5
vec <- c(-1, 1)
lst <- lapply(numeric(N), function(x) vec)
as.matrix(expand.grid(lst))
独木成林 2024-10-05 20:43:38

expand.grid 相比,data.table 包的替代方案稍快一些:

library(data.table)  
CJ(c(-1,1), c(-1,1), c(-1,1), c(-1,1), c(-1,1))

Alternative from data.table package is slightly faster compared to expand.grid:

library(data.table)  
CJ(c(-1,1), c(-1,1), c(-1,1), c(-1,1), c(-1,1))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文