全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4450 11
2015-08-20
我有数据集A,是panel data, 数据中有variable size,size分为1,2,3,4,5,我想按照每一年度(year)按照size别求另外一个variable(shrcr10)的median值,该median值作为分组依据,将整个数据集按年度,按前面求的shrcr10的五个median值分成几个subsample, 应该怎么写code? 不知道我说明白没有,请求高手解答,跪谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2015-8-20 22:36:46
pch0909 发表于 2015-8-20 21:30
我有数据集A,是panel data, 数据中有variable size,size分为1,2,3,4,5,我想按照每一年度(year)按照size别 ...
给出部分原始数据,不要自己用语言描述
二维码

扫码加我 拉你入群

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

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

2015-8-20 23:49:20
shaode01 发表于 2015-8-20 22:36
给出部分原始数据,不要自己用语言描述
您好~加上附件了。
1. 变量year,sqtile, 按照这两个变量求shrcr1的median值。
2. 根据每一年度shrcr1的五个median值,生成6个dummy变量,如d1:2008年~2014年shrcr1值小于第一个中间值,则为1,否则为0。
谢谢~!
工作簿1.xlsx
大小:(23.16 KB)

 马上下载

二维码

扫码加我 拉你入群

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

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

2015-8-21 06:18:05
还是没看懂要求,什么样的六个dummy变量?
二维码

扫码加我 拉你入群

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

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

2015-8-21 10:06:09
你看是这个意思吗?但是只有 5个dummy变量啊
data want;
infile 'C:\360Downloads\quest1.csv' missover dsd firstobs=2;
input id : $10. year sqtile shrcrl;
run;
proc sort data=want out=aa;
by year sqtile;
run;
proc means data=aa noprint;
by year sqtile;
var shrcrl;
output out=work.b(drop= _type_ _freq_) median=med_shr;
run;
data union;
merge aa(in=a) b(in=b);
by year sqtile;
run;
%macro change;

%do j=2008 %to 2014;
data final;
set union;
where year = &j.;
run;

proc sql noprint;
select med_shr into :macro1-:macro5 from work.b
where year=&j.;
quit;
run;

data aaa;
set final;
%do i=1 %to 5;
if shrcrl < &&macro&i. then d&i.=1;
else d&i.=0;
%end;
run;


proc append base=want_set new=aaa;
run;

%end;
run;

%mend change;
%change;
二维码

扫码加我 拉你入群

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

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

2015-8-21 12:13:40
忍冬的秋 发表于 2015-8-21 10:06
你看是这个意思吗?但是只有 5个dummy变量啊
data want;
infile 'C:\360Downloads\quest1.csv' missover  ...
谢谢你的回复,好像还是不行
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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