楼主: pch0909
4547 11

[问答] SAS求助:按年度和类别求某一数据的median值 [推广有奖]

  • 0关注
  • 0粉丝

初中生

66%

还不是VIP/贵宾

-

威望
0
论坛币
892 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
326 点
帖子
15
精华
0
在线时间
14 小时
注册时间
2014-4-14
最后登录
2019-8-28

楼主
pch0909 发表于 2015-8-20 21:30:59 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我有数据集A,是panel data, 数据中有variable size,size分为1,2,3,4,5,我想按照每一年度(year)按照size别求另外一个variable(shrcr10)的median值,该median值作为分组依据,将整个数据集按年度,按前面求的shrcr10的五个median值分成几个subsample, 应该怎么写code? 不知道我说明白没有,请求高手解答,跪谢!
二维码

扫码加我 拉你入群

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

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

关键词:median SAS求助 Media edi Dia sas code median 分组

回帖推荐

忍冬的秋 发表于5楼  查看完整内容

你看是这个意思吗?但是只有 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 ...

沙发
shaode01 学生认证  发表于 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别 ...
给出部分原始数据,不要自己用语言描述

藤椅
pch0909 发表于 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)

板凳
teqel 发表于 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;

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

7
pch0909 发表于 2015-8-21 12:14:49
pch0909 发表于 2015-8-21 12:13
谢谢你的回复,好像还是不行
对,是5个dummy

8
pch0909 发表于 2015-8-21 12:15:34
忍冬的秋 发表于 2015-8-21 10:06
你看是这个意思吗?但是只有 5个dummy变量啊
data want;
infile 'C:\360Downloads\quest1.csv' missover  ...
对的,是5个dummy

9
忍冬的秋 发表于 2015-8-21 12:37:08
pch0909 发表于 2015-8-21 12:15
对的,是5个dummy
哪里 不行啦 我的电脑上可以跑通啊 ,可以把 报错信息 贴出来 我分析一下

10
teqel 发表于 2015-8-21 21:21:03
忍冬的秋 发表于 2015-8-21 12:37
哪里 不行啦 我的电脑上可以跑通啊 ,可以把 报错信息 贴出来 我分析一下
程序挺好,但是不见得非要用Macro吧?

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

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