【问题标题】:All combinations of vectors向量的所有组合
【发布时间】:2014-05-12 20:28:39
【问题描述】:

我是 R 新手,我想在矩阵中找到所有可能的向量组合或乘积。如何在 R 中构造一个 3 维数组来做到这一点? MATLAB中还有类似元胞数组的东西吗?

我提供了执行此操作的 MATLAB 代码,但是我需要在 R 中执行此操作。任何帮助将不胜感激。

Regressors  = [1 2;3 4]';
%
[ ~ , Nr ] = size( Regressors ) ;
%
Combinations = cell( Nr , Nr ) ;
%
for i = 1 : Nr - 1
    for j = i + 1 : Nr  
        Combinations( i , j ) = { Regressors( : , i ) .* Regressors( : , j ) } ;
    end
end
%

会导致这个:

Combinations = 

    []    [2x1 double]
    []              []


Combinations{1,2} =

     3
     8

【问题讨论】:

  • 期望的结果是什么? matrix( 1:9 , 3 )。你能展示一下吗?
  • 所需的结果将相当于 MATLAB 中的元胞数组或向量矩阵(三维数组),它们是原始矩阵中所有可能的向量组合的乘积。这些数组将用于测试多项回归中交互项的重要性。
  • 是的,我可以阅读这个问题。我的意思是不清楚。最清楚的是显示一些输入数据和所需的输出。也许显示由元素组成的 2x2 矩阵的输出 {1,2,3,4}.....
  • @SimonO'Hanlon 在问题中包含了一个示例,以使其对非 matlab 用户更容易访问。

标签: r matlab


【解决方案1】:

从你的问题来看,卡住的地方是多维数组的创建。

可以在here找到简单的方法。

my.array <- array(1:24, dim=c(3,4,2))

从那里您可以循环遍历它并用正确的乘法结果填充每个元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多