全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
10041 18
2014-03-09
悬赏 20 个论坛币 已解决
虽然短短几行程序, 还是想不出所以然来
I want to standardize(bm1-bm5) every month from 19907 to end (mabe 201312) under N(0,1),
What's happen to run PROC STANDARD if observation= "." ?

*before file:*
IND   199007         199008       199009         199010            199011            199012       199101          199102         199103
bm1    4.99                .              -3.45            8.05                -0.66                0.19          -0.54            -5.59            1.21
bm2    3.76            -10.81          -8.46            3.05                -3.06                -1.04         - 8.22           1.68              1.31
bm3    4.90            -10               -9.17            3.31                -3.18                0.01         -1.93            8.47             -1.13
bm4    4.25            -10.48           -9.96           3.25                -3.58               -1.35          -1.86           7.71              -2.03
bm5    4.93             -9.97            -10.32         3.13                -3.51               -0.55          -3.15           8.36              -2.42
-----------------------------------------------------------------------------------------------------------------------------------------------------
SAS LOG file
15         PROC STANDARD DATA=work.before
16              MEAN=0 STD=1 OUT=after;
17              VAR 199007 19908 19909 199010 199011 199012 199101;
18        PROC MEANS DATA=after MAXDEC=2 MEAN STD;
19        RUN;
ERROR 22-322: Syntax error, expecting one of the following: a name, ;, _ALL_, _CHARACTER_, CHAR_, _NUMERIC_.  
ERROR 76-322: Syntax error,    statement will be ignored.
二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-9 12:49:59
复制代码
二维码

扫码加我 拉你入群

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

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

2014-3-9 13:42:19
proc standard data=before
mean=0 std=1 out=after;
var ind;
proc means data=after maxdec=2 mean std;
run;



应该是这样吧,亲,var 后面肯定是跟variable的呀
二维码

扫码加我 拉你入群

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

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

2014-3-9 13:53:48
data before;
input ind bm1 bm2 bm3 bm4 bm5;
cards;
199007 4.99 3.76 4.90 4.25 4.93
199008 . -10.81 -10 -10.48 -9.97
199009 -3.45 -8.46 -9.17 -9.96 -10.32
199010 8.05 3.05 3.31 3.25 3.13
;
run;



proc transpose out=a;
id ind;
run;


PROC STANDARD DATA=work.a
MEAN=0 STD=1 OUT=after;
VAR _199007 _199008 _199009 _199010;
PROC MEANS DATA=after MAXDEC=2 MEAN STD;
RUN;




我猜这是你想要的结果
二维码

扫码加我 拉你入群

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

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

2014-3-9 19:21:08
No matter what  _199007 or  _199007_ , All same result :ERROR
SAS Log:
--------------------------------
15         PROC STANDARD DATA=work.before
16              MEAN=0 STD=1 OUT=after;
17              VAR _199007;
ERROR: Variable _199007 not found.
18         PROC MEANS DATA=after MAXDEC=2 MEAN STD;
19         RUN;
二维码

扫码加我 拉你入群

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

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

2014-3-9 19:36:00
3qsir 发表于 2014-3-9 19:21
No matter what  _199007 or  _199007_ , All same result :ERROR
SAS Log:
-------------------------- ...
proc transpose out=a;
id ind;
run;

要先transpose
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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