全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
12457 8
2017-04-07
就一组数据,Write a program that will construct a moving average on a given variable, given a ‘window’and store it as another variable. For example, if we have a dataset with 10 observationson a variable x, and the window is of size 3, then your program will create a new variabley, where y1 =x1+x2+x3/3, y2 =x2+x3+x4/3, etc. Of course, this will result in some missingvalues in the end.

不介意最后有几个值用不动,就比如一组数据x1,x2,x3,x4,x5,……xn,求一个命令,使求出每连续三个数的平均值。
谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2017-4-7 10:17:19
data test2;
set test;
total=0;
if _N_>2 then do i=_N_ to _N_-2 by -1;
set test(rename=(x=k)) point=i;
total+k;
end;
y=total/3;
run;
二维码

扫码加我 拉你入群

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

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

2017-4-7 11:35:49
albusdzx 发表于 2017-4-7 10:17
data test2;
set test;
total=0;
他问的是stata怎么做,哈哈,你给个sas的code。

stata可以先产生两个滞后变量,然后横向把当期,前一期,前两期平均就好。
二维码

扫码加我 拉你入群

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

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

2017-4-7 15:21:32
支持支持,学习了
二维码

扫码加我 拉你入群

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

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

2017-7-6 02:29:36
ryuuzt 发表于 2017-4-7 11:35
他问的是stata怎么做,哈哈,你给个sas的code。

stata可以先产生两个滞后变量,然后横向把当期,前一期 ...
请问具体用哪个命令?谢谢啦!
二维码

扫码加我 拉你入群

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

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

2017-7-6 08:46:59
tiffanitiffani 发表于 2017-7-6 02:29
请问具体用哪个命令?谢谢啦!
你用
gen new_variable1 = old_variable[_n-1]

gen new_variable2 = old_variable[_n-2]

产生两个滞后变量,

然后用

gen average = (old_variable + old_variable1 +old_variable2) / 3

就可以了。

这个是针对那个SAS程序的Stata程序

Stata貌似有个滚动平均的命令,我没有细看,你自己参考一下。

http://www.stata.com/manuals13/tstssmoothma.pdf
     
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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