楼主: bhzhangkelei
1576 5

有关SAS程序的算法问题,要用下一条观测的变量计算,还要注意分组 [推广有奖]

  • 1关注
  • 0粉丝

本科生

22%

还不是VIP/贵宾

-

威望
0
论坛币
39 个
通用积分
1.2000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1065 点
帖子
29
精华
0
在线时间
107 小时
注册时间
2012-12-28
最后登录
2025-6-24

楼主
bhzhangkelei 发表于 2013-11-25 10:03:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
计算 SVENDTCSVENDTC = SVSTDTC of next visit - 1 图像 1.jpg

二维码

扫码加我 拉你入群

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

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

关键词:sas程序 Svend Visit Next visi 程序

本帖被以下文库推荐

沙发
heperwong 在职认证  发表于 2013-11-25 10:25:06
附件是不是不完整?SVENDTC呢?

藤椅
wwang111 发表于 2013-11-25 10:27:30
data test;
input usubjid : $15. visit & $8. svstdtc : $12.;
cards;
101202-200101 Visit 1  2013-04-16
101202-200101 Visit 2  2013-04-23
101202-200101 Visit 3  2013-04-27
101202-200101 Visit 4  2013-05-21
101202-200101 Visit 5  2013-06-14
101202-200101 Visit 6  2013-07-17
101202-200102 Visit 1  2013-04-18
101202-200102 Visit 2  2013-04-25
101202-200103 Visit 1  2013-04-22
101202-200103 Visit 2  2013-04-27
101202-200103 Visit 3  2013-05-04
;
proc sort data=test;
by usubjid descending visit descending svstdtc;
run;

data test1;
set test;
by usubjid descending visit descending svstdtc;
lagdtc=lag(svstdtc);
if first.usubjid then svendtc=svstdtc;
else svendtc=put(input(lagdtc,yymmdd10.)-1,yymmdd10.);
drop lagdtc;
run;

proc sort data=test1;
by usubjid visit svstdtc;
run;
已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
crackman + 100 鼓励积极发帖讨论
bhzhangkelei + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 100  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

只有一个罗纳尔多

板凳
bhzhangkelei 发表于 2013-11-25 10:55:16
heperwong 发表于 2013-11-25 10:25
附件是不是不完整?SVENDTC呢?
SVENDTC是要计算的。。。

报纸
bhzhangkelei 发表于 2013-11-25 11:06:28
wwang111 发表于 2013-11-25 10:27
data test;
input usubjid : $15. visit & $8. svstdtc : $12.;
cards;
亲,还有没有其他的方法了?

地板
heperwong 在职认证  发表于 2013-11-25 11:13:07
bhzhangkelei 发表于 2013-11-25 10:55
SVENDTC是要计算的。。。
  1. proc sql;
  2.      create table out as
  3.      select a.*,ifn(b.svstdtc^="",input(b.svstdtc,yymmdd10.),.)-1 as svendtc format=yymmdd10.
  4.      from test as a left join test as b
  5.             on a.usubjid = b.usubjid and input(substr(a.visit,7),best.)+1 = input(substr(b.visit,7),best.);
  6. quit;
复制代码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-30 17:25