楼主: daazx
1971 6

按条件插入一列 [推广有奖]

  • 0关注
  • 53粉丝

VIP

已卖:2份资源

教授

2%

还不是VIP/贵宾

-

TA的文库  其他...

Hadoop与大数据

威望
0
论坛币
50036 个
通用积分
7.1383
学术水平
176 点
热心指数
197 点
信用等级
114 点
经验
11000 点
帖子
445
精华
3
在线时间
1069 小时
注册时间
2007-10-19
最后登录
2021-6-1
毕业学校
深圳大学

楼主
daazx 在职认证  发表于 2012-1-11 11:18:29 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
比如说,有四个班级,10个人,每个人都有自己的人品,abcd四个等级,现在想插入一列“班级人品”,该特征是以这个班级中人品最好的人为标准。比如“班级1”的三个人1、2、3,“1”的人品最好,为a,那么班级1的所有成员班级人品都赋为a。请问这一列如何插入?代码如何写呢?
真实数据大概有100万条。是sas啊,不是excel~

未命名.jpg
二维码

扫码加我 拉你入群

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

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

关键词:EXCEL exce ABCD xcel 最好的 excel 如何 最好

沙发
daazx 在职认证  发表于 2012-1-11 11:23:50
是不是要用do循环
do 班级= 1 to 4;
if  班级中的人品最高的为a then 该班级的全部班级人品=a
  else if  班级中的人品最高的为b then 该班级的全部班级人品=b
  else if  班级中的人品最高的为c then 该班级的全部班级人品=c
  else if  班级中的人品最高的为d then 该班级的全部班级人品=d;
end;
具体代码不会,恳请各位老师指点~

藤椅
shenliang_111 发表于 2012-1-11 11:33:16
  1. data a;
  2. input ren  banji  renpin $;
  3. cards;
  4. 1 1 a
  5. 2 1 c
  6. 3 1 c
  7. 4 2 b
  8. 5 2 b
  9. 6 3 c
  10. 7 3 a
  11. 8 3 b
  12. 9 4 b
  13. 10 4 c
  14. ;
  15. proc sql;
  16. create table result as
  17. select *,byte(min(rank(renpin))) as banjirenpin label='班级人品'
  18. from a
  19. group by banji
  20. order by banji,ren;
  21. quit;
复制代码

板凳
daazx 在职认证  发表于 2012-1-11 12:01:37
shenliang_111 发表于 2012-1-11 11:33
非常感谢!
用sql的话,结果应该是表直接输出在result窗口吗?因为有100万条,太多了,能不能直接储存成一个表,而不查看呢?谢谢!

报纸
daazx 在职认证  发表于 2012-1-11 12:04:09
shenliang_111 发表于 2012-1-11 11:33
明白了明白了!
刚才没看到create table。。。
谢谢!我试试,遇到问题再请教你哈~!

地板
bobguy 发表于 2012-1-12 09:52:24
shenliang_111 发表于 2012-1-11 11:33
Run it to see if it works in your version of SAS.   

data a;
    input ren  banji  renpin $;
    cards;
    1 1 a
    2 1 c
    3 1 c
    4 2 b
    5 2 b
    6 3 c
    7 3 a
    8 3 b
    9 4 b
    10 4 c
    ;
    proc sql;
    select *,min(renpin) as renpin_max
    from a
    group by banji
    order by banji,ren;
    quit;

                                 ren     banji  renpin    renpin_max
                            ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ
                                   1         1  a         a
                                   2         1  c         a
                                   3         1  c         a
                                   4         2  b         b
                                   5         2  b         b
                                   6         3  c         a
                                   7         3  a         a
                                   8         3  b         a
                                   9         4  b         b
                                  10         4  c         b

7
webgu 发表于 2012-1-12 11:34:38
也可以试试DATA步。数据量大,可能bobguy大侠的效率要高。
  1. data raw;
  2.     input ren  banji  renpin $;
  3.     cards;
  4.     1 1 a
  5.     2 1 c
  6.     3 1 c
  7.     4 2 b
  8.     5 2 b
  9.     6 3 c
  10.     7 3 a
  11.     8 3 b
  12.     9 4 b
  13.     10 4 c
  14.     ;
  15. proc sort data=raw;
  16.   by banji renpin;
  17. run;
  18. data out;  
  19.    format ren banji renpin renpin_bj;
  20.    retain renpin_bj;
  21.    set raw;
  22.    by banji renpin;
  23.   if first.banji then renpin_bj=renpin;
  24. run;
复制代码
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

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

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