全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2024 3
2012-07-05
初学IML,想在矩阵中产生新的一列,用来计算第一列与第二列对应元素的差,如果原矩阵中不存在第三列直接计算,
会报错 ERROR: (execution) Invalid subscript or subscript out of range. 我用x3=0新建了一列可以解决,以下是程序:
复制代码

但是由于需要计算得出的列比较多,每列都用类似于x3=0的先声明太麻烦,有没有简单的办法能让矩阵产生新的一列,或者生成新的一个矩阵用于计算也行(比如生成一个m*n的零矩阵)?
先谢过了!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-7-5 17:41:11
b=b||(b[,1]-b[,2]);
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-6 09:51:09
Do it simply as,

    data a;
    input x1 x2;
    cards;
    1 2
    9 5
    5 6
    6 8
    ;
    /*不先生成x3会报错*/
    data a;
    set a;
    run;
    /*****************/
    proc iml;
    use work.a;
    read all into b;
    *reset print;
    *b[,3]=b[,1]-b[,2];

        x3=b[ ,+];
        print b x3;
    quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-6 13:59:41
bobguy 发表于 2012-7-6 09:51
Do it simply as,

    data a;
  原来x3=b[ ,+];可以,谢谢LS      
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群