用r中的特定跳过模式重新排列向量

用r中的特定跳过模式重新排列向量,r,permutation,R,Permutation,我的排列结果如下 abc <- gtools::permutations(4,3,repeats.allowed = T) abc这是高度手动的,因此不确定您是否正在寻找更自动化的分拣方法: abc[,2] <- rep(rep(1:4, each = 2), length.out = nrow(abc)) abc[,3] <- rep(c(rep(1:2, 2), rep(3:4, 2)), length.out = nrow(abc)) 你是对的,我想用一种自动化的方式

我的排列结果如下

abc <- gtools::permutations(4,3,repeats.allowed = T)

abc这是高度手动的,因此不确定您是否正在寻找更自动化的分拣方法:

abc[,2] <- rep(rep(1:4, each = 2), length.out = nrow(abc))
abc[,3] <- rep(c(rep(1:2, 2), rep(3:4, 2)), length.out = nrow(abc))

你是对的,我想用一种自动化的方式来看待它。因为在我所做的工作中,我想将这个想法扩展到像
abc这样的东西,如果你看一下,关于如何扩展每个新元素的模式是很清楚的。最复杂的是将它扩展到各个列,因为这样你也会有abc[,4]等等。你到底想实现什么?为什么需要这种排序模式?也许有一种完全不同的方法可以得到你想要的结果。我正在做的唯一一件事就是在
gtools::permutations中
n
发生变化(n=9,r=3,repeats.allowed=T)
但是
r
总是3。换句话说,
n
可以是4或9或其他值,但r将始终是3。因此,abc[,4]是不可能的。我所需要的是一种安排,就像上面的输出一样。我想使用
expand.grid()
,但它不会对其进行相应的排序。例如,如果我对
expand.grid(c(1,2,3,4),c(1,2,3,4),c(1,2,3,4))
进行排序,以获得上面的
abc
结果,那么这就行了。问题是为什么需要这种排列模式?你想做什么样的分析?为什么有这种特定的排序模式很重要?我怀疑这是否必要,还因为当你做排列时,每个组合会有两次,我猜你不想为每个模式运行你的东西几次。
      [,1] [,2] [,3]
 [1,]    1    1    1
 [2,]    1    1    2
 [3,]    1    2    1
 [4,]    1    2    2
 [5,]    1    3    3
 [6,]    1    3    4
 [7,]    1    4    3
 [8,]    1    4    4
 [9,]    1    1    1
[10,]    1    1    2
[11,]    1    2    1
[12,]    1    2    2
[13,]    1    3    3
[14,]    1    3    4
[15,]    1    4    3
[16,]    1    4    4
[17,]    2    1    1
[18,]    2    1    2
[19,]    2    2    1
[20,]    2    2    2
[21,]    2    3    3
[22,]    2    3    4
[23,]    2    4    3
[24,]    2    4    4
[25,]    2    1    1
[26,]    2    1    2
[27,]    2    2    1
[28,]    2    2    2
[29,]    2    3    3
[30,]    2    3    4
[31,]    2    4    3
[32,]    2    4    4
[33,]    3    1    1
[34,]    3    1    2
[35,]    3    2    1
[36,]    3    2    2
[37,]    3    3    3
[38,]    3    3    4
[39,]    3    4    3
[40,]    3    4    4
[41,]    3    1    1
[42,]    3    1    2
[43,]    3    2    1
[44,]    3    2    2
[45,]    3    3    3
[46,]    3    3    4
[47,]    3    4    3
[48,]    3    4    4
[49,]    4    1    1
[50,]    4    1    2
[51,]    4    2    1
[52,]    4    2    2
[53,]    4    3    3
[54,]    4    3    4
[55,]    4    4    3
[56,]    4    4    4
[57,]    4    1    1
[58,]    4    1    2
[59,]    4    2    1
[60,]    4    2    2
[61,]    4    3    3
[62,]    4    3    4
[63,]    4    4    3
[64,]    4    4    4