Matrix 从SAS/IML中大小相同的四个单独矩阵创建平均矩阵

Matrix 从SAS/IML中大小相同的四个单独矩阵创建平均矩阵,matrix,sas,sas-iml,Matrix,Sas,Sas Iml,我第一次在SAS Enterprise Guide(SAS企业指南)中使用IML/SAS,希望执行以下操作: 将一些数据集读入IML矩阵 求矩阵的平均值 将生成的IML矩阵转换回SAS数据集 我的输入数据集如下所示(这是虚拟数据-实际数据集更大)。输入数据集的格式也是我想要的输出数据集的格式 data_set0: d_1 d_2 d_3 1 2 3 4 5 6

我第一次在SAS Enterprise Guide(SAS企业指南)中使用IML/SAS,希望执行以下操作:

  • 将一些数据集读入IML矩阵
  • 求矩阵的平均值
  • 将生成的IML矩阵转换回SAS数据集
  • 我的输入数据集如下所示(这是虚拟数据-实际数据集更大)。输入数据集的格式也是我想要的输出数据集的格式

    data_set0:     d_1    d_2    d_3
                   1      2      3
                   4      5      6 
                   7      8      9 
    
    我的发言如下:

    proc iml;
        /* set the names of the migration matrix columns */
        varNames = {"d_1","d_2","d_3"};
    
        /* 1. transform input data set into matrix 
        USE data_set_0;
        READ all var _ALL_ into data_set0_matrix[colname=varNames];
        CLOSE data_set_0;
    
        USE data_set_1;
        READ all var _ALL_ into data_set1_matrix[colname=varNames];
        CLOSE data_set_1;
    
        USE data_set_2;
        READ all var _ALL_ into data_set2_matrix[colname=varNames];
        CLOSE data_set_2;
    
        USE data_set_3;
        READ all var _ALL_ into data_set3_matrix[colname=varNames];
        CLOSE data_set_3;
    
        /* 2. find the average matrix */
        matrix_sum = (data_set0_matrix + data_set1_matrix + 
                      data_set2_matrix + data_set3_matrix)/4;
    
        /* 3. turn the resulting IML matrix back into a SAS data set */ 
        create output_data from matrix_sum[colname=varNames];
        append from matrix_sum; 
        close output_data; 
     quit; 
    
    我一直在尝试很多东西,但似乎什么都不适合我。我当前收到的错误为:

    ERROR: Matrix matrix_sum has not been set to a value
    

    我做错了什么?首先谢谢你的帮助

    以上代码有效。在这段代码的完整版本中(为了可读性,对其进行了简化),我错误地命名了一个变量


    如果有人想用SAS/IML找到一个平均矩阵,我将把这个问题留待以后再讨论

    现在这不是一个有用的答案。如果你想让它有所帮助,请描述单独的问题(不一定要详细,但要描述问题的类型),这样有相同问题的其他人可以看到如何识别问题。我刚刚编辑了我的答案。不知道我还能说什么。上面的代码解决了在SAS/IML中从四个大小相同的单独矩阵创建平均矩阵的问题。如果您只能这么说,那么我将关闭/删除该问题;这对任何人都没有帮助。如果你想展示如何找到一个平均矩阵,可以问一个新问题(或者改写你的问题),然后把上面的代码作为答案发布出来。听起来像是一个计划。行。