由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教大家一个SAS问题
相关主题
请教两个关于SAS的问题SAS 编程问题 (有包子)
请问base(123题)的第114题SAS 问题
问SAS code怎么写sas help!!
Quick Question请教一个SAS问题
请教一个sas的sort date变量问题请教一个SAS问题
菜鸟接着请教sas base123题的112和50题里面的41题区别sas question
Sas code help- infileask SAS code
sas date variable exchange怎么把SAS里一个表里的字符型字段改为数字型?
相关话题的讨论汇总
话题: date话题: 2012话题: end话题: start话题: mmddyy10
进入Statistics版参与讨论
1 (共1页)
d**m
发帖数: 42
1
一个quiz的题不会,想请教大家一下,先多谢大家了!
The dataset below contains enrollment records for students. Write code to
count the number of days each student was enrolled. Include both the start
date and the end date in the count. Beware of overlapping date ranges. As an
example student 1’s count should be 6.
data Enrollment;
informat Start_Date MMDDYY10. End_Date MMDDYY10.;
format Start_Date MMDDYY10. End_Date MMDDYY10.;
infile datalines dlm=',';
input Student_Id Start_Date End_Date;
datalines;
1,8/20/2012,8/23/2012
1,8/21/2012,8/25/2012
2,8/20/2012,8/22/2012
2,8/24/2012,8/25/2012
3,8/20/2012,8/23/2012
4,8/22/2012,8/23/2012
3,8/22/2012,8/23/2012
4,8/23/2012,8/24/2012
3,8/24/2012,8/24/2012
run;
v******6
发帖数: 23
2
简化了下代码。。。
proc sort data=enrollment;
by student_id start_date;
run;
data new;
set enrollment;
by student_id;
retain last_end_date;
if first.student_id then do;
last_end_date=end_date;
total_enrolled_days=0;
end;
else if start_date<=last_end_date then start_date=last_end_date+1;
enrolled_days=end_date-start_date+1;
total_enrolled_days+enrolled_days;
if last.student_id then output;
keep student_id total_enrolled_days;
run;
A*****a
发帖数: 1091
3
这个帖子好诡异啊,显示有5个回帖,点进来就只有一个。。。。
楼上的,学习了,多谢
d**m
发帖数: 42
4
十分感谢您的回复! 学习了!

【在 v******6 的大作中提到】
: 简化了下代码。。。
: proc sort data=enrollment;
: by student_id start_date;
: run;
: data new;
: set enrollment;
: by student_id;
: retain last_end_date;
: if first.student_id then do;
: last_end_date=end_date;

v******6
发帖数: 23
5
因为我删了两个之前的回复。
另外代码里面我发现有个bug,对于这组数据不影响,但是数据要是再多些就会有问题:
应该把else if start_date<=last_end_date then start_date=last_end_date+1;修改
成:
else if start_date<=last_end_date then do;
start_date=last_end_date+1;
last_end_date=end_date;
end;
else last_end_date=end_date;
以上。

【在 A*****a 的大作中提到】
: 这个帖子好诡异啊,显示有5个回帖,点进来就只有一个。。。。
: 楼上的,学习了,多谢

l****u
发帖数: 529
1 (共1页)
进入Statistics版参与讨论
相关主题
怎么把SAS里一个表里的字符型字段改为数字型?请教一个sas的sort date变量问题
有个非常非常小白的SAS问题菜鸟接着请教sas base123题的112和50题里面的41题区别
请教SAS Base50中的41题Sas code help- infile
请教SAS转换variable format informatsas date variable exchange
请教两个关于SAS的问题SAS 编程问题 (有包子)
请问base(123题)的第114题SAS 问题
问SAS code怎么写sas help!!
Quick Question请教一个SAS问题
相关话题的讨论汇总
话题: date话题: 2012话题: end话题: start话题: mmddyy10