在R中,如何得到一些向量值的所有可能组合?
背景:我有一个函数,它接受一些参数。我想得到所有可能参数组合的函数结果 一个简化的例子:在R中,如何得到一些向量值的所有可能组合?,r,combinatorics,R,Combinatorics,背景:我有一个函数,它接受一些参数。我想得到所有可能参数组合的函数结果 一个简化的例子: f <- function(x, y) { return paste(x, y, sep=",")} colors = c("red", "green", "blue") days = c("Monday", "Tuesday") 我的想法是用列color和day创建一个矩阵,使用现有向量colors和days填充它,为结果初始化一个空列,然后使用循环在每个矩阵行调用f一次,并将结果写入最后一
f <- function(x, y) { return paste(x, y, sep=",")}
colors = c("red", "green", "blue")
days = c("Monday", "Tuesday")
我的想法是用列color
和day
创建一个矩阵,使用现有向量colors
和days
填充它,为结果初始化一个空列,然后使用循环在每个矩阵行调用f一次,并将结果写入最后一列。但是我不知道如何从颜色
和天数
向量轻松生成矩阵。我试着搜索它,但我得到的所有结果都是针对combn
函数的,它做了一些不同的事情
在这个简化的例子中,
颜色
和天数
是因素,但在我的真实例子中,情况并非如此。函数的一些参数是整数,因此我的实向量可能更像1,2,3
,函数将要求它作为数值传递给它。所以请不要使用依赖于因子水平的解决方案,如果它们不能以某种方式用于处理整数 我想您只需要展开.grid
:
> colors = c("red", "green", "blue")
> days = c("Monday", "Tuesday")
> expand.grid(colors,days)
Var1 Var2
1 red Monday
2 green Monday
3 blue Monday
4 red Tuesday
5 green Tuesday
6 blue Tuesday
如果要在同一行中指定列名,请执行以下操作:
> expand.grid(color = colors, day = days)
color day
1 red Monday
2 green Monday
3 blue Monday
4 red Tuesday
5 green Tuesday
6 blue Tuesday
并且,如果要在同一行中指定列名,
expand.grid(color=colors,day=days)
Related:
> expand.grid(color = colors, day = days)
color day
1 red Monday
2 green Monday
3 blue Monday
4 red Tuesday
5 green Tuesday
6 blue Tuesday