楼主: gymmc
278 3

[作业] 关于sas转置的问题 [推广有奖]

  • 0关注
  • 0粉丝

小学生

7%

还不是VIP/贵宾

-

威望
0
论坛币
17 个
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
73 点
帖子
2
精华
0
在线时间
8 小时
注册时间
2018-3-4
最后登录
2018-12-15

gymmc 发表于 2018-12-6 17:01:19 |显示全部楼层
老师留的一个作业,做了很长时间也没有做出来,不知道要求的id怎么能加进去,求大神指教

写一个宏,将q6_have数据集中指定的变量和记录行进行转置,其中变量名的起止序号,和需要转置的行作为宏参数输入。转置后生成两个变量idwkid记录变量名的序号,如wk1,id的取值为1wk记录变量在提取行的观测值。示例如下:

若要求将wk4-wk96的第1行数据进行转置,


则三个宏参数分别赋值:4,96,1。转置前为:


图片1.png

转置后的数据集观测为
图片2.png



图片2.png
已有 1 人评分热心指数 收起 理由
eijuhz + 1 精彩帖子

总评分: 热心指数 + 1   查看全部评分

stata SPSS
whymath 发表于 2018-12-6 21:41:16 |显示全部楼层
转置过程可以用var语句指定要转置的变量,如var wk4-wk96;
回复

使用道具 举报

l1i2n3i4n5g 在职认证  发表于 2018-12-6 22:21:45 |显示全部楼层
  1. data test;
  2.    input wk1-wk5;
  3. cards;
  4. 23 8 31 96 49
  5. 67 1 28 78 92
  6. ;
  7. run;
  8. proc print;run;

  9. %macro trans(begin,end,row);
  10. proc transpose data=test out=want(keep=_name_ col&row rename=(_name_=id col&row=wk));
  11.    var wk&begin-wk&end;
  12. run;
  13. data want;
  14.    set want;
  15.    id=compress(id,,'a');
  16. %mend;
  17. %trans(2,5,1)
  18. proc print;run;
复制代码
回复

使用道具 举报

gymmc 发表于 2018-12-7 20:41:59 |显示全部楼层
l1i2n3i4n5g 发表于 2018-12-6 22:21
哇!!谢谢您!!!!太感谢了
回复

使用道具 举报

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

GMT+8, 2018-12-15 11:20