R如何排列数据帧的所有行,以便在列表中返回所有可能的行组合?

R如何排列数据帧的所有行,以便在列表中返回所有可能的行组合?,r,permutation,R,Permutation,我试图生成一个数据帧(或矩阵,若更容易的话)的所有可能的行排列,并将一个对象作为数据帧/矩阵的列表或数组返回。我构建了一个模拟数据框架,它的维度与我正在使用的相同 test.df <- as.data.frame(matrix(1:80,nrow=16,ncol=5) test.df 使用16而不是3和数据框将其应用于示例。1)问题定义不明确。组合中可以有两行以上吗?2) 你已经试过什么了?一个简单的谷歌搜索“R中的组合”会给你们一些指针,而不用在这里发帖。你们是指行的组合或排列吗?关于

我试图生成一个数据帧(或矩阵,若更容易的话)的所有可能的行排列,并将一个对象作为数据帧/矩阵的列表或数组返回。我构建了一个模拟数据框架,它的维度与我正在使用的相同

test.df <- as.data.frame(matrix(1:80,nrow=16,ncol=5)
test.df

使用16而不是3和数据框将其应用于示例。

1)问题定义不明确。组合中可以有两行以上吗?2) 你已经试过什么了?一个简单的谷歌搜索“R中的组合”会给你们一些指针,而不用在这里发帖。你们是指行的组合或排列吗?关于排列,我在下面给出了一个答案。我认为你应该澄清你的问题,否则问题可能会被关闭。我为大家的困惑感到抱歉。我更正了这篇文章,以便将来的读者能理解它。她写了
组合
,但他指的是
排列
,他把它标记为
排列
。你能把-1标志去掉吗?不是我的-1。顺便说一句,从帮助中心“不是所有的问题都可以或应该在这里回答。”好的,谢谢你指出这一点。我只是很生气,因为我仔细阅读,试图想明白他的意思。。。是的,问题贴得不好。但这本身就是一个可以思考的问题。谢谢你的回答。很抱歉,原帖中的拼写错误造成了混乱。
v.df <- data.frame(symbol = c("a", "b", "c"), number = c(1,2,3))
v.df
##   symbol number
## 1      a      1
## 2      b      2
## 3      c      3

permutate.rows <- function(df) {
  k <- dim(df)[1] # number of rows
  index.df <- as.data.frame(t(permutations(n = k, r = k, v = 1:k)))
  res <- lapply(index.df, function(idx) df[idx, , drop = FALSE])
}

permutate.rows(v.df) 
$V1
  symbol number
1      a      1
2      b      2
3      c      3

$V2
  symbol number
1      a      1
3      c      3
2      b      2

$V3
  symbol number
2      b      2
1      a      1
3      c      3

$V4
  symbol number
2      b      2
3      c      3
1      a      1

$V5
  symbol number
3      c      3
1      a      1
2      b      2

$V6
  symbol number
3      c      3
2      b      2
1      a      1