全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3975 5
2014-03-11
大家好。
我有一非平衡面板数据,2000-2010年。中间有的个体观测值不连续,如有的个体在样本中出现的时间范围是2000,2009,2010.不知道用什么命令可以删除这些时间不连续个体?

谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-11 18:55:22
我假设你说的中间有的个体观测值不连续,就是有的个体有缺失值,那我们就是要去除有缺失值的变量


/*这个例子就是要去除x*/
data a;
infile cards missover;
input date x y;
cards;
1990 2 2
1991 3 3
1992 . 4
1993 4 4
;
run;

proc transpose  out=b;/*得到变量名称*/
run;

data c;
set b;
if nmiss(of _numeric_)+cmiss(of _character_)>0 then delete;/*去除有缺失值的变量*/
run;

proc transpose out=d(drop=_name_);/*重新转置回来,有缺失值的变量已经被去除了*/
run;
二维码

扫码加我 拉你入群

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

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

2014-3-11 19:09:28
可以考虑删除缺失值,或按照一定的算法补上缺失值。
二维码

扫码加我 拉你入群

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

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

2014-3-11 19:32:27
intheangel 发表于 2014-3-11 18:55
我假设你说的中间有的个体观测值不连续,就是有的个体有缺失值,那我们就是要去除有缺失值的变量
谢谢你,不过我觉得你可能有点误解我的意思。

假设数据如下,我要保留所有ann的数据,删除candy的数据,因为1991,1992年中candy的数据缺失了

data a;
infile cards missover;
input date stu score;
cards;
1990 candy 20
1990 ann    20
1991 ann    40
1992 ann    40
1993 ann    40
1993 candy 40
;
run
二维码

扫码加我 拉你入群

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

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

2014-3-11 20:24:34
data a;
infile cards missover;
input date stu$ score;
cards;
1990 candy 20
1990 ann    20
1991 ann    40
1992 ann    40
1993 ann    40
1993 candy 40
;
run;
proc transpose data=a out=b(drop=_name_);
by date;
id stu;
run;

proc transpose data=b out=c;
run;

data d;
set c;
if nmiss(of _numeric_)+cmiss(of _character_)>0 then delete;
run;

proc transpose data=d out=final(drop=_name_);
run;



proc transpose真是妙用无穷啊
二维码

扫码加我 拉你入群

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

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

2020-1-18 09:39:24
intheangel 发表于 2014-3-11 20:24
data a;
infile cards missover;
input date stu$ score;
proc transpose data=a out=b(drop=_name_);
by date;
id stu;
run;
请问这个id stu 中的id 是什么意思
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群