楼主: 823954913
3739 4

[学科前沿] 自动撰写统计分析报告:数据引用 [推广有奖]

  • 0关注
  • 19粉丝

副教授

30%

还不是VIP/贵宾

-

威望
0
论坛币
1369 个
通用积分
8.5921
学术水平
20 点
热心指数
15 点
信用等级
19 点
经验
19260 点
帖子
270
精华
1
在线时间
1182 小时
注册时间
2009-3-7
最后登录
2024-4-19

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

自动撰写统计分析报告:数据引用

                                                                     By:欧江

EXCEL中,如果需要在工作薄sheet2中B1单元格中使用工作簿sheet1中单元格A1中的内容,那么我们有2种方式,一是写一个公式,如在B1单元格中键入“=Sheet1!A1”,二是先在B1单元格中键入“=”,然后点击A1单元格;无论是那种方法,最后在B1单元格中都会形成一个公式“=Sheet1!A1”。这里的“Sheet1”是指工作薄,“A”是指A列,“1”是指第一行。可以发现EXCEL中数据引用采用了“表+列+行”的模式。

在自动撰写统计分析报告中数据引用主要采用宏的形式,在引用格式上则与EXCEL类似,采用“数据集_变量_行”的形式(中间为下划线)。例如需要对数据集a中变量name中的第10行数据进行引用,那么宏语句为“&a_name_10.”。

例如需要得到“全班学生平均身高为50.1英寸”,需要以下步骤:

一、导入撰写宏工具。

首先,需要将含有撰写宏工具的文件“sasmacr”放到C盘macro文件夹之下;然后,在C盘macro文件夹建立一个逻辑库“myapps”,目的是将撰写宏工具导入到SAS系统中;最后,需要用options语句将撰写工具激活,以便使用。

代码如下:

libname myapps 'C:\macro';

options mstored sasmstore=myapps;

二、计算全班学生平均身高。

这里以SAShelp.class数据集为例,其计算代码如下:

data a;

format height 12.2;

set sashelp.class;

run;

proc means data=a noprint;

var height;

output out=b mean=height;

run;

注意需要规定height的format格式,这里设置为显示2位小数。

三、将数据制作成宏。

直接调用撰写宏工具“K”即可,代码如下:

%k(dataset=b);

四、实现数据引用。

这里用print过程为例实现数据引用,直接将文字和数据组合即可,代码如下:

proc print data=a noobs label;

title "全班学生平均身高为&b_height_1.英寸";

run;

至此就实现了数据引用。

这种数据引用方式具有以下几个方面的优点:

一是格式清楚,EXCEL普及率很高,大家都比较熟悉其数据引用方式,因而SAS中采用类似方法便于大家掌握其格式特点。

二是能够自动更新,上面例子中有19名学生,得到的平均身高为62.34英寸。如果某个学生的数据发生变化,再次运行代码后得到学生平均身高,此时宏“&b_height_1.”中的数据就会跟着发生变化,其他地方需要引用该数据,则其引用格式不变,仍然是“&b_height_1.”。

三是稳健性增强,如果在上面例子中增加1个学生的观测此时就体现出这种方法的优越性。EXCEL中增加了观测,用透视表计算平均值则需要手动更改数据源,用函数计算同样需要重新划定数据范围,不能实现自动更新,而SAS则不然。计算平均身高时,默认就是整个数据集,因而无论增加或者减少观测,不影响其数据计算。

欢迎加入自动撰写统计分析报告QQ群:106450645。或关注:http://blog.sina.com.cn/s/articlelist_3774237250_0_1.html

代码:

libname myapps 'C:\macro';

options mstored sasmstore=myapps;

data a;

format height 12.2;

set sashelp.class;

run;

proc means data=a noprint;

var height;

output out=b mean=height;

run;

%k(dataset=b);

proc print data=a noobs label;

title "全班学生平均身高为&b_height_1.英寸";

run;

宏工具到https://bbs.pinggu.org/thread-2669159-1-1.html下载。


二维码

扫码加我 拉你入群

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

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

关键词:统计分析报告 数据引用 统计分析 分析报告 计分析 分析报告 统计

已有 1 人评分经验 收起 理由
crackman + 100 鼓励积极发帖讨论

总评分: 经验 + 100   查看全部评分

沙发
scswjtu115 发表于 2013-11-7 15:43:23 |只看作者 |坛友微信交流群
学习了

使用道具

藤椅
math_xian 发表于 2014-10-28 17:15:39 |只看作者 |坛友微信交流群
不错!收藏一个!

使用道具

板凳
bitcoin 发表于 2015-3-16 13:08:43 |只看作者 |坛友微信交流群
学习了 能省去很多手工的工作

使用道具

报纸
ziyi1121 发表于 2017-4-12 09:34:10 |只看作者 |坛友微信交流群
我用windows打开说是为其他系统建的

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 09:32