楼主: ronaldocui99
4065 8

求问 SAS 变量值变为字段名称的方法 [推广有奖]

  • 0关注
  • 0粉丝

本科生

29%

还不是VIP/贵宾

-

威望
0
论坛币
1033 个
通用积分
0.0600
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
845 点
帖子
66
精华
0
在线时间
83 小时
注册时间
2009-9-2
最后登录
2022-1-18

10论坛币
各位大牛,小白有问:
SAS中,如何将变量值变为标签,并且name击中这个分类 在分类值上加标志1,没有击中标0,求程序,多谢!!!

如 源数据
name   class
A         103
A         105
A         104
A         108
B         110
B         103
B         120
C         234

期望结果

name 103 104 105 108 110 120 234 256 267
A         1    1     1     1    0    0    0    0      0
B         1    0      0     0   1     1   0    0      0
C         0    0      0     0   0     0   1    0      0     
关键词:变量值 name 标签 程序 如何
飘渺
沙发
yongyitian 发表于 2015-8-6 16:38:56 |只看作者 |坛友微信交流群
  1. /* try this */
  2. data have;
  3. input name$ class;
  4. trans_var = 1;
  5. datalines;
  6. A         103
  7. A         105
  8. A         104
  9. A         108
  10. B         110
  11. B         103
  12. B         120
  13. C         234
  14. ; run;

  15. options missing=0;
  16. proc transpose data=have out=want (drop=_name_);
  17. by name;
  18. id class;
  19. *var trans_var;
  20. run;
复制代码

使用道具

藤椅
穿在袜子上的脚 发表于 2015-8-6 17:16:52 来自手机 |只看作者 |坛友微信交流群
用proc transpose来做,倒置一下就好了,具体可以查下help,手机党不好写程序

使用道具

板凳
FengOrz 发表于 2015-8-6 22:49:20 |只看作者 |坛友微信交流群
PROC TRANSPOSE data=XX;
  ID class;       
  BY name;
run;

使用道具

报纸
FengOrz 发表于 2015-8-6 22:50:25 |只看作者 |坛友微信交流群
PROC TRANSPOSE data=XX;
  ID class;        
  BY name;
run;
發了兩次,不知怎麼刪回覆Orz

使用道具

领教了

使用道具

7
teqel 发表于 2015-8-8 00:14:51 |只看作者 |坛友微信交流群
PROC TRANSPOSE data=aa out=dd(drop=_name_);
   ID class;        
   BY name;
run;

data dd (drop=i);
set dd;
array a{*} _numeric_;
do i=1 to dim(a);
a(i)=coalesce(a(i), 0);
end;
run;

使用道具

8
teqel 发表于 2015-8-8 00:16:05 |只看作者 |坛友微信交流群
不知道为什么在我这里do over不好用

使用道具

9
忍冬的秋 发表于 2015-8-8 09:19:39 |只看作者 |坛友微信交流群
前面大神  貌似少了一个var
PROC TRANSPOSE data=a out=dd(drop=_name_);
ID class;        
BY name;
var class;
run;

data dd (drop=i);
set dd;
array a{*} _numeric_;
do i=1 to dim(a);
if missing(a(i)) ~= 1 then a(i)=1;
else a(i)=0;
end;
run;

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 21:15