R 如何在向量上执行组合过程,以便将原始向量作为第一行

R 如何在向量上执行组合过程,以便将原始向量作为第一行,r,vector,combinations,R,Vector,Combinations,我有这个向量 b=c(5,8,9) 我想对b执行组合,每次选择2个项目,这样我就可以将b的原始元素作为第一行来获取 [,1] [,2] [,3] [1,] 5 8 9 [2,] 8 9 5 我试过combn(b,2),它给了我这个 [,1] [,2] [,3] [1,] 5 5 8 [2,] 8 9 9 我可以获得帮助以实现所需结果吗?由于所需结果的第二行不是唯一定义的,因此不

我有这个向量

 b=c(5,8,9)
我想对b执行组合,每次选择2个项目,这样我就可以将b的原始元素作为第一行来获取

        [,1] [,2] [,3]
[1,]    5     8    9
[2,]    8     9    5
我试过combn(b,2),它给了我这个

        [,1] [,2] [,3]
[1,]    5     5    8
[2,]    8     9    9

我可以获得帮助以实现所需结果吗?

由于所需结果的第二行不是唯一定义的,因此不需要任何复杂的工具:

b <- 1:10
rbind(b, c(b[-1], b[1]))
#   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# b    1    2    3    4    5    6    7    8    9    10
#      2    3    4    5    6    7    8    9   10     1

<代码>b这些是排列作为顺序的事项。用
combn(b,2)
观察到的是
b的所有组合
choose2。恰好有三种这样的组合:
(5,8)、(5,9)、(8,9)
。输出是一个列式矩阵。这也是
R
?如果是这样的话,你应该添加
r
标签。不清楚你在问什么。如果您需要将第一行作为原始值,那么您真的不想选择2个项目-您想使用第一个值,然后选择(示例)其他两个值中的1个?所以你的矩阵第一行应该是5,8,9,第二行是(8或9),(5或9),(5或8)?是的,泰勒,我需要我的输出,因为(5 8 9)映射到(8 9 5)或(5 8 9)映射到(9 5 8)。@user3327637,它回答了你的问题吗?