全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2341 6
2011-07-15
问题描述:
x  y
1  5
1  2
1   1
1  3
1 4
1  6
2   3
2   2
2  1
2   6
2   4
先按x分组,然后求每一个观测值在组内y值大于该观测值的所有y值的加权平均。每一个观测值都要求这样的变量值。
请问应该怎么用sas编程?
二维码

扫码加我 拉你入群

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

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

全部回复
2011-7-16 09:02:55
rwalker 发表于 2011-7-15 16:27
问题描述:
x  y
1  5
1  2
1   1
1  3
1 4
1  6
2   3
2   2
2  1
2   6
2   4
先按x分组,然后求每一个观测值在组内y值大于该观测值的所有y值的加权平均。每一个观测值都要求这样的变量值。
请问应该怎么用sas编程?
It is not clear. Can you state your problem in a different way?
二维码

扫码加我 拉你入群

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

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

2011-7-20 17:22:07
data mm;
input x y;
cards;
1  5
1  2
1   1
1  3
1 4
1  6
2   3
2   2
2  1
2   6
2   4
;
run;


data nn;
do until(last.x);
set mm;
by x;
retain tmp n 0;
if first.x then do;
num2=0;
n=0;
tmp=y;
end;
else do;
n+1;
tmp+y;
num2=(tmp-y)/n;

end;
output;
end;
run;
二维码

扫码加我 拉你入群

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

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

2011-7-20 17:26:24
掉了sort的一部分程序
data kk;
input x y;
cards;
1  5
1  2
1   1
1  3
1 4
1  6
2   3
2   2
2  1
2   6
2   4
;
run;


proc sort data=kk out=mm;
by x descending y;
run;


data nn;
do until(last.x);
set mm;
by x;
retain tmp n 0;
if first.x then do;
num2=0;
n=0;
tmp=y;
end;
else do;
n+1;
tmp+y;
num2=(tmp-y)/n;

end;
output;
end;
run;
二维码

扫码加我 拉你入群

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

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

2011-7-20 17:43:36
我的理解是这个样子的
复制代码
1# rwalker
二维码

扫码加我 拉你入群

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

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

2011-8-6 11:53:48
设此表为test(x,y)
proc sql;
     select x,y
     from test as a left join (select x,mean(y) as avg_y from test group by x) as b on a.x=b.x
     where a.y > b.avg_y;
quit;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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