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

时间:2018-05-17 17:20:25

标签: r permutation

我正在尝试生成数据帧的所有可能行排列(如果更容易,则生成矩阵),并将对象作为数据帧/矩阵的列表或数组返回。我构建了一个模拟数据框,其尺寸与我正在使用的尺寸相同。

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

编辑:将组合更改为排列

1 个答案:

答案 0 :(得分:-1)

> react-native run-ios

给出了所有置换dfs的列表:

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) 

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