SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 905|回复: 4
打印 上一主题 下一主题

关于大批量数据计算均数和标准差

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-8-29 12:47:15 | 只看该作者

关于大批量数据计算均数和标准差

我处理的一批数据,需要计算每个变量的均数和标准差,并且生成在一个数据表里面。我自己编写了一个程序,把mean和std放在一个means语句里,他们都被排在一行了,所以我就用了两次然后再把纵向合并,虽然实现了,但是觉得means用了两次,感觉繁了点,不知道是不是可以简化一下的?变量有几万个吧,样本量是975。下面是我的程序:
proc means data=mydata.chr2 mean noprint;
output out=m1 mean=;
run;
proc means data=mydata.chr2 std noprint;
output out=m2 std=;
run;
data m;
   set m1 m2;
run;
proc TRANSPOSE data=m out=mean_std;/**数据转置***/
var _all_;
run;
data mean_std;
   set mean_std;
   rename COL1=mean col2=std;
run;
data mean_std;
   set mean_std;
   if mean=0 or mean=975 then delete;
run;
proc export data=mean_std
      outfile="E:\data\chr2\chr2_mean_std.txt";
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-8-29 19:48:53 | 只看该作者

Re: 关于大批量数据计算均数和标准差

看了你的代码,帮你写了段等价程序:
[code:ppexipzk]
proc means data=mydata.chr2 noprint;
        output out=mean_std(drop=_freq_ _type_ where=(col1_mean not in (0,975))) mean= sum= /autoname;
run;
proc export data=mean_std
        outfile="E:\data\chr2\chr2_mean_std.txt";
run;
[/code:ppexipzk]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-8-31 09:50:54 | 只看该作者

Re: 关于大批量数据计算均数和标准差

这样子不行啊!
虽然列表出现的符合要求,是每个变量的mean和std,但是生成的数据集并不是这样子的!mean和std都被放在同一行里了!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-9-1 19:39:49 | 只看该作者

Re: 关于大批量数据计算均数和标准差

我写的是和你写的程序等价。
你可以去运行一下,至于你别的要求,不是很明白,我只是通过你的程序来理解你的意思,
你看看你那个程序。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-9-1 21:30:35 | 只看该作者

Re: 关于大批量数据计算均数和标准差

我亲自尝试了一下,出来的还是排在一行,跟输出的列表不一样的!所以不得已菜用了两次,分别生成均数和标准差,然后合并再转置才得到,是麻烦了点!但是速度还可以接受,半分钟可以处理六七万个变量,已经满足了,呵呵
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 23:30 , Processed in 0.074900 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表