【发布时间】:2015-04-24 03:19:15
【问题描述】:
expand.grid 是R 中一个非常方便的函数,用于计算多个列表的所有可能组合。以下是它的工作原理:
> x = c(1,2,3)
> y = c("a","b")
> z = c(10,12)
> d = expand.grid(x,y,z)
> d
Var1 Var2 Var3
1 1 a 10
2 2 a 10
3 3 a 10
4 1 b 10
5 2 b 10
6 3 b 10
7 1 a 12
8 2 a 12
9 3 a 12
10 1 b 12
11 2 b 12
12 3 b 12
如何在 Julia 中重现此功能?
【问题讨论】:
-
我考虑过构建
n嵌套循环,其中n是变量的数量(在我上面的示例中为3:x,y,z)。每个循环都会遍历每个变量中唯一值的数量,但我很困惑,因为我无法提前知道我需要多少个循环。所以我正在考虑构建一个调用自身的函数,但是 1)我不知道这在 Julia 中是否可行,并且 2)这听起来像一个愚蠢复杂的解决方案,可能不会很有效。感谢您的评论。 -
你见过 R 的 expand.grid 是怎么做的吗?它遍历 args 的数量,在每次迭代中添加一个列,这是源列的扭曲子集,具有各种嵌套的代表等等......
-
@Henrik,第一个链接不是很通用(虽然确实有效),第二个链接肯定很好,虽然确实依赖于一个包。
-
@IainDunning 感谢您的评论。我的评论旨在作为对 OP 的一个小插曲,他们很容易找到一些 Julia 代码来提出问题(你尝试过什么),然后解释为什么它不能满足他们的需求,例如'我希望更一般的','但是,这个解决方案依赖于一个包'(即正是你的评论)。干杯。
标签: r combinations julia