楼主: 1061047021
1636 6

[问答] SAS数据整理问题 [推广有奖]

  • 0关注
  • 0粉丝

高中生

67%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
0
学术水平
0 点
热心指数
3 点
信用等级
0 点
经验
162 点
帖子
20
精华
0
在线时间
34 小时
注册时间
2018-9-6
最后登录
2019-7-24

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
       我有一个数据集,变量X1代表随访的人;变量X2代表血压情况,0是非高血压,1是高血压;变量C代表随访次数(即a被随访6次,b随访9次…)。
AAA.png
       那我如何生成一个数据集(如下),里面每个人只有一次,并且生成一个新变量X3,赋值是如果第一次随访是非高血压,最后一次随访是高血压,就赋值为1,其他赋值为0

BBB.png
  哪位大神能指导我一下,谢谢啦!
二维码

扫码加我 拉你入群

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

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

关键词:非高血压 血压情况 随访次数 高血压 数据集

AAA.png (7.44 KB)

AAA.png

沙发
l1i2n3i4n5g 在职认证  发表于 2018-10-31 16:48:40 |只看作者 |坛友微信交流群
其中一种思路
step1:排序,保留first.x1和last.x1;
step2:用transpose过程对x1变量转置;
step3:简单判断一下col1和col2就行了。

使用道具

藤椅
1061047021 学生认证  发表于 2018-10-31 18:16:16 |只看作者 |坛友微信交流群
谢谢解答!

使用道具

板凳
苹果叶 在职认证  发表于 2018-11-2 20:53:38 |只看作者 |坛友微信交流群
  1. data test;
  2.   do x1 = 'A', 'B';
  3.     do c = 1 to 9;
  4.       x2 = rand('binomial', 0.5, 1);
  5.       if not (x1 = 'A' and c > 6) then output;
  6.     end;
  7.   end;
  8. run;

  9. proc sort data = test;
  10.   by x1 c;
  11. run;

  12. data result;
  13.   set test;
  14.   by x1 c;
  15.   retain tmp;
  16.   if first.x1 then tmp = x2;
  17.   if last.x1 then do;
  18.     if tmp = 0 and x2 = 1 then x3 = 1;
  19.     else x3 = 0;
  20.   end;
  21.   drop tmp;
  22. run;
复制代码

使用道具

报纸
lucky_forever 发表于 2018-11-2 23:05:46 来自手机 |只看作者 |坛友微信交流群
这个用sum statement 做非常容易

使用道具

地板
lucky_forever 发表于 2018-11-2 23:05:47 来自手机 |只看作者 |坛友微信交流群
这个用sum statement 做非常容易

使用道具

7
superguy333 发表于 2018-11-3 19:10:02 |只看作者 |坛友微信交流群
  1. proc sort data=sy; by x1 c; run;

  2. data result;
  3. set sy;
  4. if first.X1 = 0  AND LAST.X1=1 then X3=1;
  5. else X3=0;
  6. run;

  7. data result1;
  8. SET result;
  9. IF FIRST.X1;
  10. BY X1;
  11. RUN;
复制代码

使用道具

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

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

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

GMT+8, 2024-4-26 19:21