【问题标题】:SAS/IML: creating a dataset from multiple matricesSAS/IML:从多个矩阵创建数据集
【发布时间】:2011-02-15 02:24:44
【问题描述】:

假设我在 IML 中有许多矩阵。它们可以是数字或字符。我将如何使用它们创建单个 SAS 数据集?

我尝试了类似的东西

n = {1 2 3, 4 5 6};      /* 2 x 3 numeric */
c = {'a' 'b', 'c' 'd'};  /* 2 x 2 character */
dsvars = {n c};
create dat var dsvars;   /* should be a 2-obs, 5-variable dataset */
append;

但这会将 n 和 c 转换为列向量并导出它们,这不是我想要的。我应该分别导出 n 和 c 并将它们合并到一个 DATA 步骤中吗?

【问题讨论】:

    标签: sas


    【解决方案1】:

    当 n 和 c 是向量时,您的方法有效。当它们是矩阵时,有几种方法可以做到这一点。我喜欢使用 CREATE FROM 和 APPEND FROM 语法,并将数字和字符矩阵写入单独的数据集,以便稍后合并:

    proc iml;
    n = {1 2 3, 4 5 6};      /* 2 x 3 numeric */
    c = {'a' 'b', 'c' 'd'};  /* 2 x 2 character */
    
    nNames = "n1":"n3";
    cNames = "c1":"c2";
    create ndat from n[colname=nNames]; 
    append from n;
    create cdat from c[colname=cNames]; 
    append from c;
    quit;
    
    data dat;
       merge ndat cdat;
    run;
    proc print;run;
    

    【讨论】:

    • 非常感谢 Rick,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2022-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多