(三)SAS图形

2023-05-16

1、PROC MEANS分析

PROC MEANS DADA = <数据集名>[<统计量关键字列表>];
[VAR <分析变量列表>;]
[BY|CLASS<分组变量列表>;]
[OUTPUT OUT=<输出数据集名> <关键字>=<变量名>...;]
RUN;
  • 统计关键字列表:指定要计算的统计量,省略此项,过程会自动计算观测值、均值、标准差、最大值、最小值5个统计量;
  • 分析变量列表:指定所要分析的所有变量,多个变量之间用空格隔开;
  • 分组变量列表:指定统计分组变量,多个变量之间用空格隔开;
  • means过程中可以使用class和by两个语句进行分组统计,其区别为:
  • 使用by时,必须按分组变量排序,使用class无此要求;
  • 使用by时,统计结果每组一张表,使用class语句将所有统计结果放在一张表中
统计学生体检表中身高的观测数、均值、标准差、最大值、最小值
proc means data=sashelp.class;
var height;
run;

2、PROC UNIVARIATE分析

PROC UNIVARIATE DATA=<数据集名>[选项];
[VAR<分析变量列表>;]
[BY|CLASS <分组变量列表>;]
[OUTPUT OUT=<输出数据集名> <关键字>=<变量名>...;]
RUN;

UNIVARIATE过程,相比MEANS过程,能够进行更为全面的描述性统计分析;

计算学生体检数据表中体重的各种统计量
proc univariate data=SASHELP.class;
var weight;
run;

在SAS中,必须采用proc univariate过程中的normal命令来检验正态性

3、SGPLOT过程制图

3.1 条形图

proc sgplot [data=数据集];
var|hbar 分类变量名/[选项];

选项:

  • group=变量名 指定数据分组变量

  • groupdisplay=cluster|stack 分组柱形图的方式,默认为satck堆叠

  • response=响应变量名 指定要汇总的数值变量

  • stat=means|freq|sum 未指定响应变量时,默认统计量是freq;指定了响应变量时,默认sum

  • datalabel = 变量名 该变量的值显示为每个bar的标签值

  • Barwidth=n 指定条形的宽度,范围为0.1-1,默认值为0.8

绘制条形图坐标轴:
proc sgplot[data=数据集];
XAXIS|YAXIS [选项]; /*定义坐标轴*/

选项:

  • GRID 绘制坐标轴上每个刻度标记线;指定要汇总的数值变量

  • VALUES={value-list} 坐标轴上刻度标记的值

    • 如:VALUES={0 10 20 30 40 50 60 70 80}或VALUES={0 to 80 by 10}

3.2 盒形图

proc sgplot[data=数据集];
VBOX|HBOX 连续变量名/[选项];

选项:

  • CATEGOPY=分类变量名 为变量的每一个值都分别绘值盒形图

3.3 直方图

proc sgplot[data=数据集];
Histogram 连续变量名/[选项];

选项:

  • NBINS=n 指定直条的个数

  • BINWIDTH=n 如果没有指定“NBINS=”选项,则由此指定直条的宽度

  • BINSTART=n 指定第一直条的中点

  • SCALE=尺度类型 指定垂直轴的尺度,包括PERCENT(默认值)、COUNT或PROPORTION

4、GPLOT制作点线图

绘制散点图和连线图
PROC GPLOT DATA=<数据集名>;
PLOT<纵轴变量>*<横轴变量>[=<分组变量>][/<选项1>];
[SYMBOL<N> <选项2>];
RUN;
  • 选项1:用来设置图形的整体特性,例如坐标轴的值、颜色、外框颜色、填充色等

  • 选项2:点或连线的相关参数

5、GCHART过程制图

GCHART可以绘制方块图、条形图、饼图、环形图等
PROC GCHART DATA=<数据集名>;
<图形关键字><变量名>/<选项列表>;
RUN;
图形关键字图形类型
block方块图
hbar水平条形图
hbar3d三维水平条形图
vbar垂直条形图
vbar3d三维垂直条形图
pie饼图
pie3d三维饼图
donut环形图
star星型图

<选项列表>

  • type=统计量关键字 常用的统计量关键字有Freq(频数)、mean(均值)、sum(总数)、percent(频数百分比),默认为频数;

  • group=变量 指定分组变量;

  • subgroup=变量 指定第二次分组的变量

  • midpoints=值列表 指定条形图每个矩形中点

  • levels=值 指定条形图中矩形的个数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(三)SAS图形 的相关文章

  • SAS 中不匹配的引号问题

    众所周知 SAS需要特别注意句子中的引号 E g let quoted I d like to data temp set temp quoted quoted run 提交时遇到错误 事实上 我需要将数据从另一个数据集中复制到一个数据集中
  • 通过 SAS 从 ORACLE DB 导入 blob

    对每个人来说都是一天中的好时光 上周我在工作中遇到了一个巨大的问题 这是交易 我需要通过SAS从ORACLE数据库下载excel文件 blob 我在用 第一步我需要从oracle获取数据 我使用的构造 blob文件近100kb proc s
  • 如何在 SAS University Edition 中直接导入 PC 上的文件?

    我正在使用 SAS University Edition 我必须将文件导入 SAS 软件 我尝试过使用 infile 和 proc import 语句 但直接从 PC 访问文件时这些语句不起作用 有没有办法直接从 PC 访问 SAS UE
  • 如何在一个proc打印语句中打印多个数据集?

    我有一个 sas 查询 如果我创建了 3 个数据集 可以说命名为ds1 ds2 ds3 现在 我想在一个 proc print 语句下打印所有这些 那么我们该怎么做呢 就像 我想要这样的东西 proc print data work ds1
  • SAS:使用 PROC IMPORT 导入 .xlsx 时定义类型

    问题 使用 PROC IMPORT 时如何定义从 xlsx 文件导入的变量的变量类型 My work 我正在使用 SAS v9 4 据我所知 它是普通的 SAS 我没有 SAS ACCESS 等 我的数据如下所示 ID1 ID2 MONTH
  • SAS proc sql返回group by/order by变量的重复值

    我有一些相当简单的 SQL 应该为每个资产每季度提供 1 行 相反 我每组得到多行 下面是 SQL SAS 数据步骤和一些输出数据 重复行数 在下面的数据中为 227708 等于 Num borrowers 即 asset1 的行数 pro
  • SAS 无法识别日期格式

    我有以下字符日期格式 3 1990 4 1990 5 1990 我尝试了以下代码 data work temps set indata newdate input strip Date MMYYSw rename newdate date
  • 为当前的下一行数据编写脚本

    如果我想复制下一行的数据该怎么办 例如 客户 A 于 2015 年 1 月 1 日开始当前行程 下一次行程于 2015 年 1 月 15 日开始 因此 他当前行程的结束日期将为 2015 年 1 月 14 日 即下一次行程开始的前一天 我可
  • SAS - 使用另一列中的值动态创建列名称

    我有一列包含许多从 XML 解析器解析的标志 数据如下 USERKEYED Y VALMATCH N DEVICEVERIFIED N EXCEPTION N USERREGISTRD N ASSOCIATE Y EXTERNAL N GR
  • 从 pandas 数据帧生成 sas7bdat 文件

    我想知道是否有任何Python库支持这种转换 目前我找到的选项是SASpy csv或SQL数据库 但不成功 这实际上不是一个编程问题 但希望这不会成为问题 我找到了这个帖子 将 pandas 数据框导出为 SAS sas7bdat 格式 h
  • 想要创建序列号

    我想生成序列号 e g I have NID ABD90 BGJ89 HSA76 而且我要 ID NID 1 ABD90 2 BGJ89 3 HSA76 我应该运行什么代码才能得到这个结果 请帮我 既然你标记了 SAS 我就用 SAS 来回
  • SAS 我可以逆向进行 sas 过程观察吗

    我知道Sas在处理时从数据集顶部的观察开始 然后继续进行下一个直到到达底部观察 但是有没有一种简单的方法可以让sas首先处理底部观察 然后再处理到顶部 您可以使用nobs and point向后处理它 而无需执行任何中间步骤 这是一个例子
  • 在 Base SAS 中,如何自动刷新资源管理器?

    我相当确定这一定是困扰其他人的问题 因此必须有一个解决方案 我编写代码并想要快速检查数据集 但它不存在 我需要选择窗口 单击 查看 然后单击 刷新 是否有我可以使用的键盘快捷键或我可以编写的宏来为我做到这一点 我知道这很懒 但它让我烦恼 任
  • 如何使用 proc http 和 http_tokenauth 在后台调用 SAS STP

    我正在尝试使用选项后台通过 proc http 从 SAS 调用存储进程 STP 以确保我的主进程不会等待 STP 完成 我确实使用以下代码 filename resp
  • 解析宏变量名称中包含 %eval 的宏,SAS

    这是一个玩具示例 旨在帮助解决我遇到的更大问题 它本质上涉及在引用更大的宏变量名称时使用 eval 宏 我创建了一个宏变量 x 2 它使用循环 it 的值 从最终输出可以看出该变量已成功创建 但是我只能将其放入日志而不评估 it 1 这当使
  • 将 SAS 数据集中的观测值读入数组

    这个问题与大型机上的 SAS 相关 尽管我相信在这种情况下没有什么区别 我有以下 SAS 数据集 Obs DATO T ALLOC T FRESP 1 19328 647 1804 2 19359 654 1797 3 19390 662
  • 通过电子邮件发送 SAS html 输出

    我正在使用 SAS Enterprise Guide 6 1 我正在尝试使用 Windows 调度程序对下面的程序进行批处理以生成每周报告 它将有一些过程打印和 sgplots 我将其发送给的用户是高级用户 并且没有 SAS 如果他安装了
  • SAS SQL 传递

    我想知道在这段代码中 SAS SQL 传递中首先执行的是什么 Connect To OLEDB As MYDB DBConnect Catalog MYDB Create table MYDB extract as select put P
  • 转置逗号分隔字段

    我有一个如下所示的数据集 并且正在使用 SAS Enterprise Guide 6 3 data have input id state cards 134 NC NY SC 145 AL NC NY SC run 我有另一个数据集 其中
  • SAS Do 循环:在循环内使用循环变量来创建滞后变量

    我想创建包含给定变量的滞后值的变量 以实现大量滞后 我怎么能这样做呢 我尝试以下操作 data out set in do i 1 to 50 let j i lag j Lag j x end run 如何获取循环变量i进入宏变量j或者如

随机推荐