使用r从具有不同长度的几个向量中找到对象的排列

时间:2016-10-13 01:10:16

标签: r permutation

我有大约八个不同的载体,包含名称:

名为“first”的矢量具有如下名称:

     [1] "Brandon Belt"    "Conor Gillaspie" "Buster Posey"  

名为“second”的矢量具有如下名称:

     [1] "Starlin Castro"  "Kelby Tomlinson" "Chris Coghlan" 

我在这里关注的是对所有八个向量进行排列以获得所有可能的排列,如下所示:

   Trevor Brown Brandon Belt Starlin Castro Chris Coghlan Brandon Crawford Gregor Blanco Denard Span Gregor Blanco

   Trevor Brown Brandon Belt Starlin Castro Chris Coghlan Brandon Crawford Gregor Blanco Denard Span Angel Pagan
   .
   .
   .
   Buster Posey Buster Posey Chris Coghlan Kelby Tomlinson Kelby Tomlinson Kelby Tomlinson Angel Pagan Kelby Tomlinson

几个向量可以在其中共享相同的名称,这就是为什么上面的列表具有重复的名称。

我在排列工作上遇到了这么困难,因为:

1)我找不到在不同长度的矢量上执行置换的方法。

2)我尝试对每个载体使用for循环,但这非常耗时。

请告诉我如何找到有效的编程来提出所有排列。

以下是所有八个向量的长度:6,3,3,5,7,3,3,2

所以这将提供34020种可能性。请找到可以帮助我处理导致10000000多种可能性的排列的解决方案。

1 个答案:

答案 0 :(得分:0)

这扩展了HubertL的评论。 R中用于不同长度的矢量的本机数据结构是列表。下面是一个使用数字向量而不是字符向量的示例:

expand.grid(list(1:6, 1:3, 1:3))

将创建三个大小为6,3,3的向量的排列。