在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