我们可以使用combinat包中的permn函数来查找排列,但是如果向量中有重复的元素,则结果将不会具有唯一的排列,因此,我们需要与permn函数一起使用唯一的函数。例如,如果我们有一个向量1、2、1,那么排列将是(1 2 1),(1 1 2),(1 1 2),(1 2 1),(2 1 1),(2 1 1),唯一的排列将是(1 2 1),(1 1 2),(2 1 1)。
x1<-c(1,2,1,2) x1
输出结果
[1] 1 2 1 2
找到所有排列-
烫发(x1)
[[1]] [1] 1 2 1 2 [[2]] [1] 1 2 2 1 [[3]] [1] 1 2 2 1 [[4]] [1] 2 1 2 1 [[5]] [1] 2 1 1 2 [[6]] [1] 1 2 1 2 [[7]] [1] 1 1 2 2 [[8]] [1] 1 1 2 2 [[9]] [1] 1 1 2 2 [[10]] [1] 1 1 2 2 [[11]] [1] 1 2 1 2 [[12]] [1] 2 1 1 2 [[13]] [1] 2 1 2 1 [[14]] [1] 1 2 2 1 [[15]] [1] 1 2 2 1 [[16]] [1] 1 2 1 2 [[17]] [1] 2 1 1 2 [[18]] [1] 2 1 2 1 [[19]] [1] 2 2 1 1 [[20]] [1] 2 2 1 1 [[21]] [1] 2 2 1 1 [[22]] [1] 2 2 1 1 [[23]] [1] 2 1 2 1 [[24]] [1] 2 1 1 2
找到唯一的排列-
唯一的(permn(x1))
[[1]] [1] 1 2 1 2 [[2]] [1] 1 2 2 1 [[3]] [1] 2 1 2 1 [[4]] [1] 2 1 1 2 [[5]] [1] 1 1 2 2 [[6]] [1] 2 2 1 1
x2 <-c(0,1,0)位数(x2)
[[1]] [1] 0 1 0 [[2]] [1] 0 0 1 [[3]] [1] 0 0 1 [[4]] [1] 0 1 0 [[5]] [1] 1 0 0 [[6]] [1] 1 0 0
唯一的(permn(x2))
[[1]] [1] 0 1 0 [[2]] [1] 0 0 1 [[3]] [1] 1 0 0