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中重现此函数?
5条答案
按热度按时间mrzz3bfm1#
感谢@Henrik的评论:
字符串
下面是使用列表理解的另一个解决方案
型
a64a0gku2#
这里是我的完全(?)一般解决方案,使用递归、varargs和splatting:
字符串
这给出了一个数组的数组,但是如果你想的话,你可以把它简单地组合成一个矩阵。
oymdgrw73#
我知道这是一个相当老的问题,但我也确实将expand.grid函数从R转换为Julia,几乎是在找到这篇文章的前几天一行一行地转换。对于某些人来说,它仍然很有趣,因为它返回一个
DataFrame
,这可能更方便。下面是link to the Gist,下面是以防万一的代码:"""
function expand_grid(args...)
nargs= length(args)
end
fiei3ece4#
我知道这是一个老问题,但如果有人仍然在寻找一个像R expand.grid函数一样工作的解决方案(即传递一个任意类型的命名变量列表,并返回一个 Dataframe ,其中变量名作为列名,每列都是原始变量的类型,以及不同变量的所有可能组合),这是我的Julia新手尝试:
字符串
很可能有一种更有效或更干净的方法来做到这一点,但这是我能想到的最好的方法,它能给予我从R函数中所期望的。
x4shl7ld5#
字符串