楼主: vieri32
1643 9

請問以下情況怎麼得到變量名 [推广有奖]

  • 1关注
  • 0粉丝

硕士生

22%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1062 点
帖子
88
精华
0
在线时间
110 小时
注册时间
2009-12-6
最后登录
2021-7-12

楼主
vieri32 发表于 2013-4-3 10:52:12 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如果我有一數據集如下:

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


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

Thx!!!!!!!!!!

二维码

扫码加我 拉你入群

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

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

关键词:company compan comp Best Oman

回帖推荐

pobel 发表于5楼  查看完整内容

改进了一点儿: 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 ...

沙发
Imasasor 发表于 2013-4-3 10:55:48
that is a pretty good question
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

藤椅
vieri32 发表于 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.

板凳
pobel 在职认证  发表于 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;
和谐拯救危机

报纸
pobel 在职认证  发表于 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;
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
webgu + 10 + 10 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

和谐拯救危机

地板
猎户星云 发表于 2013-4-3 11:20:38
这个用excel函数挺好解决的。
公众号:结构方程模型学习笔记

7
hamsik11 发表于 2013-4-3 11:32:22
vname

8
vieri32 发表于 2013-4-3 11:42:24
pobel 发表于 2013-4-3 11:14
改进了一点儿:
data test;
  input Date $   CompanyA CompanyB CompanyC CompanyD ;
謝謝,非常好的方法..剛剛我用proc transpose做了..有點麻煩....haha..不過還是成功了..另外
我的Company是比口 ICBC HSBC CCB ABC EFG DEF這樣的..能一次性定義array嗎?我沒用過array,haha

9
pobel 在职认证  发表于 2013-4-3 12:48:08
vieri32 发表于 2013-4-3 11:42
謝謝,非常好的方法..剛剛我用proc transpose做了..有點麻煩....haha..不過還是成功了..另外
我的Company ...
可以定义array。只要把变量列到定义数组的语句就可以了。如果是数据集中连续的变量,可以用”ICBC -- DEF“
和谐拯救危机

10
vieri32 发表于 2013-4-17 15:52:35
pobel 发表于 2013-4-3 12:48
可以定义array。只要把变量列到定义数组的语句就可以了。如果是数据集中连续的变量,可以用”ICBC -- DEF ...
關於這個問題,

sas官網也有解答..不過您的方法更好!


http://support.sas.com/kb/46/471.html

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 14:06