全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1582 9
2013-04-03
如果我有一數據集如下:

Date         CompanyA ComanyB CompanyC CompanyD  BestCompany
2013-1-1     100           125           99                101          CompanyB


請問怎麼以最快的方法得到BestCompany呢? 就是Max(CompanyA-D);

Thx!!!!!!!!!!

二维码

扫码加我 拉你入群

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

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

全部回复
2013-4-3 10:55:48
that is a pretty good question
二维码

扫码加我 拉你入群

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

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

2013-4-3 11:02:50
Imasasor 发表于 2013-4-3 10:55
that is a pretty good question
Thank you. I am waiting it to optimize my codes, otherwise I will use a long if else statment.

二维码

扫码加我 拉你入群

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

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

2013-4-3 11:04:52
抛个砖:

data test;
  set test;

  array tmp (*) companya--companyd;
  max=tmp(1);maxi=1;
  do i=2 to dim(tmp);
      if tmp(i)>max then do; max=tmp(i); maxi=i; end;
  end;
  bestcompany=vname(tmp(maxi));
  put bestcompany=;

run;
二维码

扫码加我 拉你入群

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

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

2013-4-3 11:14:08
改进了一点儿:
data test;
  input Date $   CompanyA CompanyB CompanyC CompanyD ;
  cards;
2013-1-1 200  125 99 101
2013-1-2 100  125 99 101
2013-1-3 200  125 99 301
2013-1-4 200  125 200 101
2013-1-5 200  200 200 200
;

data want;
    set test;
        length bestcompany $200;

        array tmp (*) companya--companyd;
        max=max(of companya--companyd);
        do i=1 to dim(tmp);
              if tmp(i)=max then bestcompany=catx(",",bestcompany,vname(tmp(i)));
        end;
        put _n_  bestcompany=;
run;
二维码

扫码加我 拉你入群

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

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

2013-4-3 11:20:38
这个用excel函数挺好解决的。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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