楼主: dxystata
1222 10

如何得到这样的数据集 [推广有奖]

版主

大师

34%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
182307 个
通用积分
15205.2831
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
290925 点
帖子
5370
精华
1
在线时间
13475 小时
注册时间
2006-6-21
最后登录
2024-4-24

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

60论坛币
  1. data aaa;
  2. input id treat$ visit x;
  3. cards;
  4. 1 AB 2 1
  5. 1 AB 6 2
  6. 1 AB 10 3
  7. 2 BA 2 4
  8. 2 BA 6 5
  9. 2 BA 10 6
  10. ;
  11. run;
复制代码
以id=1为例
visit=2为AB中A的基线,visit=6为A的疗后数据
visit=6为AB中B的基线,visit=10为B的疗后数据

希望得到的数据
id treat treat1 x0 x1;
1   AB    A     1  2
1   AB    B     2  3
2   BA    B     4  5
2   AB    A     5  6

关键词:数据集 Visit treat cards Input visit treat 如何
沙发
lovexialulu 发表于 2017-2-19 09:28:24 |只看作者 |坛友微信交流群
  1. data a;
  2. input id treat$ visit x;
  3. cards;
  4. 1 AB 2 1
  5. 1 AB 6 2
  6. 1 AB 10 3
  7. 2 BA 2 4
  8. 2 BA 6 5
  9. 2 BA 10 6
  10. ;
  11. run;
  12. proc sort;by id treat visit;run;

  13. data b2 b6 b10;
  14. set a;
  15. if visit=2 then output b2;
  16. if visit=6 then output b6;
  17. if visit=10 then output b10;
  18. run;

  19. data f1;
  20. merge b2(rename=(x=x0 visit=visit2))
  21. b6(in=a rename=(x=x1 visit=visit6));
  22. by id treat;
  23. if a;
  24. length treat1 $1.;
  25. treat1='A';
  26. run;
  27. data f2;
  28. merge b6(rename=(x=x0 visit=visit6))
  29. b10(in=a rename=(x=x1 visit=visit10));
  30. by id treat;
  31. if a;
  32. length treat1 $1.;
  33. treat1='B';
  34. run;
  35. data final(drop=visit:);
  36. set f1 f2;
  37. proc sort;by id treat treat1;
  38. run;
复制代码
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
admin_kefu + 30 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 30  学术水平 + 2  热心指数 + 2   查看全部评分

使用道具

藤椅
wwang111 发表于 2017-2-19 18:45:05 |只看作者 |坛友微信交流群
data wanted;
set aaa;
retain treat1 x0 x1;
x1=x;
x0=lag(x1);
if visit=6 then treat1=substr(treat,1,1);
else if visit=10 then treat1=substr(treat,2,1);
if lag(id) ne id then delete;
drop x visit;
run;
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

使用道具

板凳
sherry123 发表于 2017-2-20 07:52:41 |只看作者 |坛友微信交流群
data aaa1;
set aaa;
if visit=6 then  treat1=substr(treat, 1,1);
else if visit>6 then  treat1=substr(treat, 2,1);
run;
proc sort; by id treat1;run;

data baseline(drop=visit);
set aaa(rename=(x=x0));
if visit=2 then  do;        treat1=substr(treat, 1,1); output; end;
else if visit=6 then do;  treat1=substr(treat, 2,1); output; end;
run;
proc sort; by id treat1;run;

data aaa2(rename=(x=x1)); ;
merge aaa1(in=a) baseline(in=b);
by id treat1;
if a and b;
run;
proc sort data=aaa2 out=aaa3(drop= visit);
by id visit;
run;
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

使用道具

报纸
dxystata 发表于 2017-2-20 10:54:08 |只看作者 |坛友微信交流群
lovexialulu 发表于 2017-2-19 09:28
请跟帖以出售60论坛币的形式,我来购买,谢谢!

使用道具

地板
dxystata 发表于 2017-2-20 10:54:30 |只看作者 |坛友微信交流群
sherry123 发表于 2017-2-20 07:52
data aaa1;
set aaa;
if visit=6 then  treat1=substr(treat, 1,1);
请跟帖以出售60论坛币的形式,我来购买,谢谢!

使用道具

7
sherry123 发表于 2017-2-21 05:31:19 |只看作者 |坛友微信交流群
根据楼主提示,申请奖励 , 谢谢! :)

bmw1.jpg (59.44 KB)

需要: 60 个论坛币  [购买]

谢谢楼主奖励

使用道具

8
dxystata 发表于 2017-2-21 07:43:55 |只看作者 |坛友微信交流群
sherry123 发表于 2017-2-21 05:31
根据楼主提示,申请奖励 , 谢谢! :)

使用道具

9
yingj7093 在职认证  发表于 2017-2-21 09:29:26 |只看作者 |坛友微信交流群
data b;
set aaa(drop=visit);
x0=lag(x);
run;
proc sort data=b;by treat;run;
data b1(rename=(x=x1));
set b;
by treat;
if first.treat then delete;
run;

使用道具

10
yingj7093 在职认证  发表于 2017-2-21 09:42:39 |只看作者 |坛友微信交流群
data b;
set aaa;
x0=lag(x);
if visit=6 then treat1=substr(treat,1,1);
else if visit=10 then treat1=substr(treat,2,1);
run;
proc sort data=b;by treat;run;
data b1(rename=(x=x1));
set b;
by treat;
if first.treat then delete;
drop visit;
run;
刚少了treat1哈哈。
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

使用道具

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

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

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

GMT+8, 2024-4-24 12:04