楼主: summerwe
3892 4

[SAS EM] 【求助】如何合并同一变量的两行不同观测 [推广有奖]

  • 2关注
  • 0粉丝

本科生

8%

还不是VIP/贵宾

-

威望
0
论坛币
18 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
3705 点
帖子
21
精华
0
在线时间
116 小时
注册时间
2017-6-16
最后登录
2019-6-5

楼主
summerwe 发表于 2017-6-16 14:41:48 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位技术大神好!本人SAS小白一枚,刚入SAS坑不久,想向各位请教问题,烦请各位回复下哈~~万分感谢/*------------------------------------------------Question-----------------------------------------------------*/
原始数据集为
data a;
input sex$ P1 P2;
cards;
F        4              7
F    28.5%      50%
M     10             7
M   71.5%      50%
;
run;

现在想变成如下的输出:

F     4 (28.5%)    7 (50%)
M   10(71.5%)    7 (50%)

请问各位大神如何在proc步里实现?非常感谢!




二维码

扫码加我 拉你入群

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

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

关键词:question Input Quest cards Data SAS 技术

沙发
lovexialulu 发表于 2017-6-18 21:11:03
  1. data a;
  2. input sex $ P1 $ P2 $ @@;
  3. cards;
  4. F 28.5% 50%
  5. F 4 7
  6. M 10 7
  7. M 71.5% 50%
  8. ;
  9. run;
  10. proc sql noprint;
  11. create table num as select * from a where index(p1,'%')=0 order by sex;
  12. create table pct as select * from a where index(p1,'%') order by sex;
  13. quit;

  14. data b;
  15. merge num pct(rename=(p1=p1_ p2=p2_));
  16. by sex;
  17. length pp1 pp2 $10.;
  18. pp1=strip(p1)||' ('||strip(p1_)||')';
  19. pp2=strip(p2)||' ('||strip(p2_)||')';
  20. run;
复制代码

藤椅
summerwe 发表于 2017-6-19 09:49:55
lovexialulu 发表于 2017-6-18 21:11
很好的解决了我的问题,非常感谢!!

板凳
summerwe 发表于 2017-6-19 11:43:24
lovexialulu 发表于 2017-6-18 21:11
还想再问一下哈,这几个百分数都是数值型变量,而调用index需要在字符串中进行,如何把这几个百分数转换成字符串呢?最好在proc sql 语句中完成转换,谢谢啦!

报纸
yan262635681 发表于 2018-6-7 20:55:24 来自手机
kan bu dao

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 18:34