• http://www.sunlionchina.com
  • 楼主: today米虫
    261 4

    [问答] 如何将SAS一行的变量两两比较大小,然后将小的输出到另一个数据集 [推广有奖]

    • 0关注
    • 0粉丝

    小学生

    85%

    还不是VIP/贵宾

    -

    威望
    0
    论坛币
    15 个
    学术水平
    0 点
    热心指数
    0 点
    信用等级
    0 点
    经验
    485 点
    帖子
    7
    精华
    0
    在线时间
    6 小时
    注册时间
    2018-07-22
    最后登录
    2018-1-19

    楼主
    today米虫 发表于 2018-1-15 09:44:49 |只看作者 |倒序
    data score;
        array col {100} col1-col100;
        do row =1 to 10;
            do i=1 to 100;
            col(i)=int(uniform(7)*100);
            end;
        end;
        drop row i;
    run;
    让两两比较小的结果输出到test数据集

    支持楼主:购买VIP购买贵宾 购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
     
    载入中......
    stata SPSS
    沙发
    流水不朽 发表于 2018-1-15 09:58:02 |只看作者
    既然是两两比较取最小,是不是反过来看,全部变量比较,取最大的保留?
    你看这是不是你所考虑的结果?
    藤椅
    today米虫 发表于 2018-1-15 10:15:16 |只看作者
    流水不朽 发表于 2018-1-15 09:58
    既然是两两比较取最小,是不是反过来看,全部变量比较,取最大的保留?
    你看这是不是你所考虑的结果?
    我要到结果是将两两比较后将最小值保留,比如第一列col1 与col2比较后输出到test然后col2与col3比较小的输出到test以此类推。
    板凳
    流水不朽 发表于 2018-1-15 10:32:07 |只看作者
    其实我的意思是,你这样循环的比较,最终剩下的不就是最大的没 输出到test里面?那反过来,不就是只是取最大的,要么把最大的踢掉,剩下的不就是test想要的结果?
    报纸
    舍身卫道 发表于 2018-1-15 11:02:39 |只看作者
    不知道这个结果是楼主要的吗?
    1. data score;
    2.     array col {100} col1-col100;
    3.     do row =1 to 10;
    4.         do i=1 to 100;
    5.         col(i)=int(uniform(7)*100);
    6.         end;
    7.     end;
    8.     drop row i;
    9. run;

    10. proc transpose data=score out=score1;
    11. var _numeric_;
    12. run;

    13. data test;
    14.         set score1;
    15.         lag_data=lag(col1);
    16.         if col1>=lag_data then rslt=lag_data;
    17.         else rslt=col1;
    18.     if rslt^=.;
    19.         keep rslt;
    20. run;
    复制代码
    您需要登录后才可以回帖 登录 | 我要注册

    GMT+8, 2018-1-22 01:31
    阆中市论坛 凤台县论坛 洪濑论坛 绥江县论坛 市论坛
    胶南市论坛 东旺镇论坛 石埠奶场论坛 梓潼县论坛 进贤论坛