R:按一列生成可能的排列表

R: generate possible permutation tables by one column

我有一个 table 看起来像这样:

 Indikaatori nimi Alamkriteerium Kriteerium Skoor
1  Indikaator    1            1.1          1   100
2  Indikaator    2            1.2          1   100
3  Indikaator    3            1.3          1   100
4  Indikaator    4            1.1          1     0
5  Indikaator    5            2.1          2     0
6  Indikaator    6            2.1          2     0
... and so on...

我需要根据第一列创建 table 所有可能的排列。 总共有 50 个指标,我想从中选择 49 个并获得所有可能的组合以及所选元素的其他数据列。 50 个元素中有 49 个元素,我将得到总共 50 个排列,但我想自动创建所有这些 tables 而无需手动创建(稍后也需要 48 个元素)。

有什么方法可以自动生成这 50 个 table 以及所选元素的相应数据?

感谢所有帮助和指点!

此解决方案使用循环,与 R 中的矢量化操作相比速度相当慢,但它会以 data.frames.

列表的形式为您提供所需内容
datatable = read.table(textConnection(
  "2  Indikaator    2            1.2          1   100
3  Indikaator    3            1.3          1   100
4  Indikaator    4            1.1          1     0
5  Indikaator    5            2.1          2     0
6  Indikaator    6            2.1          2     0"))


x = rep(list(data.frame(NULL)),times = 2^nrow(datatable))
a = 1
for (i in 1:nrow(datatable)){
  sets = combn(nrow(datatable),i)
  for (j in 1:ncol(sets)){
    x[[a]] = datatable[sets[,j],]
    a = a+1
  }
}
View(x[[10]])
# The following will give you a list of fifty data frames,
# Each data frame has a 49 row subset of the original
listoftables <- apply(combn(1:50, 49), 2, FUN = function(x) df[x,])