当矩阵的行数可变时,我想从矩阵的每一行 expand.grid

I want to expand.grid from each row of a matrix when the matrix could have variable number of rows

myMatrix <- matrix(c(1,2,3,4,5,6),2,3, byrow=T) # line 1

exp.myMatrix <- function(myMatrix) { # line 2
  for (rownum in 1:nrow(myMatrix)) assign(paste("R",rownum, sep=""), myMatrix[rownum,]) # line 3
  Combinations <- do.call(expand.grid, lapply(ls(pattern='^R\d$'), get)) # line 4
  rm(list=ls(pattern='^R\d$')) # line 5
  return(Combinations) # line 6
} # line 7

Combinations <- exp.myMatrix(myMatrix) # line 8

以上代码报错:"Error in FUN(X[[i]], ...) : object 'R1' not found".

但是,当我不使用该函数并且 运行 仅使用第 1、3、4、5 行时,我没有收到任何错误。但是我需要通过一个函数传递 myMatrix,因为矩阵的行数是可变的。另请注意,我需要 运行 第 5 行,因为我需要清除下一个矩阵的变量,该矩阵的行数可能比前一个矩阵少。

你必须使用:

do.call(expand.grid, split(myMatrix, rep(1:nrow(myMatrix), ncol(myMatrix))))

#  1 2
#1 1 4
#2 2 4
#3 3 4
#4 1 5
#5 2 5
#6 3 5
#7 1 6
#8 2 6
#9 3 6