由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教sas问题
相关主题
新手请教大家一个sas 问题,多谢指教请教sas code问题
请教一个 SAS macro再问个问题,如何从dataset里删除一个data pattern?
SAS.Base(11月)疑问问一个概率问题
大家帮帮忙: SURVEY 问题!!!!!!!!!问个probability的问题
有什么办法能够数出sas dataset里的变量数。[合集] 请教几道adv题
老问题如何产生missing table问IND DIRECT的实习面试 硕士
问一个SAS macro的问题Does anyone know citizens bank?
A VERY Tricky SAS question: Help Needed with Baozi[合集] SAS里如何实现LOCF(LAST OBS CARRIED FORWARD)?
相关话题的讨论汇总
话题: ind话题: 2002话题: 2008话题: employee话题: indata
进入Statistics版参与讨论
1 (共1页)
h******n
发帖数: 232
1
举个例子:
id x y
1 2002 0
1 2004 1
1 2006 0
1 2006 1
1 2007 0
1 2008 1
id变量代表一个employee。
x代表年份,x的值一定在2002到2008之间。
y=0,表示这个employee开始工作。y=1,表示employee停止工作。y一定以0,1交替出现。
上面的例子表示的是,employee 1 这个人,工作时间为2002-2004。2006,2007-
2008。
我想输出的是8个年份的indicator,ind_2002.....ind_2008。如果工作了,indicator
=1;没工作,indicator=0。上面例子输出结果应该为:
ind_2002 ind_2003 ind_2004 ind_2005 ind_2006 ind_2007 ind_2008
1 1 1 0 1 1 1
请教sas c
A*********u
发帖数: 8976
2
proc sort data=indata out=uniqueid(keep=id) nodupkey;
by id;
run;
data shell;
set uniqueid;
do x=2002 to 2008;
output;
end;
run;
** sort indata and shell by id x;
data temp;
merge indata shell;
by id x;
retain IND_;
if first.id then do;
ind_=0;
end;
if y=0 then do;
IND=1;
ind_=1;
end;
if y=. then do;
if ind_=0 then ind=0;
if ind_=1 then ind=1;
end;
if y=1 then do;
ind=1;
ind_=0

【在 h******n 的大作中提到】
: 举个例子:
: id x y
: 1 2002 0
: 1 2004 1
: 1 2006 0
: 1 2006 1
: 1 2007 0
: 1 2008 1
: id变量代表一个employee。
: x代表年份,x的值一定在2002到2008之间。

p********a
发帖数: 5352
h******n
发帖数: 232
4
非常感谢!!
1 (共1页)
进入Statistics版参与讨论
相关主题
[合集] SAS里如何实现LOCF(LAST OBS CARRIED FORWARD)?有什么办法能够数出sas dataset里的变量数。
[合集] 说说我和Smith Hanley的故事,老问题如何产生missing table
How to reorder variables in a SAS data set问一个SAS macro的问题
[合集] sas里面怎么能让A2排在A10前面A VERY Tricky SAS question: Help Needed with Baozi
新手请教大家一个sas 问题,多谢指教请教sas code问题
请教一个 SAS macro再问个问题,如何从dataset里删除一个data pattern?
SAS.Base(11月)疑问问一个概率问题
大家帮帮忙: SURVEY 问题!!!!!!!!!问个probability的问题
相关话题的讨论汇总
话题: ind话题: 2002话题: 2008话题: employee话题: indata