数据分析与SAS学习笔记2

SAS是一款广泛应用于企业,特别是在医学和金融领域的统计分析软件。它包括数据处理、数据分析和输出等功能,如ETL过程、丰富的统计指标和图表输出。SAS的数据步和过程步是其核心处理流程,同时支持与数据库的连接。企业通常通过建立逻辑库来管理和访问数据,而SAS的高成本和特定格式的数据集是其主要特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SAS在企业使用的情况:

SAS是一个很昂贵的商业软件。在企业中使用SAS比较多,在企业界中是比较流行,在学术界使用R比较多。

SAS简介:统计分析系统

 处理生物分析数据。

SAS成为统计领域的国际标准软件,服务全球50000多家企业。

在医学和金融领域,在进行数据分析的时候,要求使用SAS软件。

数据分析软件的基本问题:

1)怎么建立数据集?

ETL,SAS有专门的语句和过程做这个事情。

2)怎样进行数据分析(自己写代码,或者利用现有函数)?

SAS语言有自己的特点。丰富的解读结果。统计指标。

3)输出图表

输出图表比较简陋,专门花钱买数据展现模块,有非常好的效果。

SAS基本界面:

编辑窗、输出窗、日志窗

SAS资源管理器

SAS处理流程:

数据步 过程步:

 一个完整的数据步和过程步:

代码说明:

1)$符号表示这个变量是一个字符串类型;宽度缺省是8个字符;空格作为分隔符;cards和run之间数据;内置数据集第一行循环读取;读到student数据集中。把整个内置数据全部读完。

2) 变量是列;正常是叫变量。

3)每一行是一个观测值、样本;

4)student是数据集;放在磁盘里的文件。专门SAS的一种格式;如果打开文件,发现是二进制的,是乱码。

5)proc: 过程步:print:输出过程,将student数据集进行输出,keep我们只要显示id name和score这三个变量。

6)obs:观测:每一行是一个观测值,每一行是一个样值。noobs:无观测值。

7)预先创建逻辑库mydb;

SAS是商业软件,是按年来付费的。

SAS的模块:

逻辑库:

对应于一条物理路径的逻辑名,用于存放SAS数据集合数据文件。

这种数据集只能在SAS中进行读取。

建立逻辑库:

1)先在硬盘上建立相应目录;

2)在编辑窗中输入libname命令;

3)按F8或者提交按钮提交命令;

libname mydb 'c:\mydb';

代码说明:

1)末尾要加分号;

 内置逻辑库:Maps、sashelp、sasusers都是内置,里面还有样本数据。

work是临时逻辑库:加入我们建的数据集临时放在临时逻辑库中,

逻辑库名丢弃;可使用libname重新建立连接;

使用图形界面建立逻辑库:

鼠标指向逻辑库,在右键菜单选择“删除”;

删除后目录和数据在物理上依然存在,只是拆除了连接;

那些保存在硬盘上数据,只要通过在硬盘上进行删除才行。

人工建立的逻辑库都是永久的。

逻辑库连接数据库:

libname oradb oracle user=scott password=tiger path=orcl;

以上命令可以直接连接Oracle数据库,其他数据库操作类似。

代码说明:path:连接实例。

变量:数据集中列、属性等。统计学中就叫变量。

命名规则:以字母或下划线开头,由字母、下划线、数字等组成,不区分大小写。

不要使用中文作为变量名。SAS中是不区分大小写的。

变量赋值。

SAS中的变量就是数据集中的列,值就是一行观测值。

代码解读:

1) 数据集是sfz;是在临时逻辑库work中;

2)length 语句定义了一个变量id, $表示这是一个字符串变量,18表示18个字符这么长;如果是数值型数据,小数点后面为4位。

3)input语句是指定我们读入数据的列是怎么切割的,先读入id,然后再读入sex列,分隔符是空格,没有特殊说明的话,sex后面有一个$,说明是一个字符型变量。

4)字符串变量默认是8个字符,没有这个length语句,就只有8个字符,使用length语句调整变量的长度。

5)在cards和run之间定义了内置数据,读数据的方法是每次一行,到run,然后到数据步开始位置,然后再读入第二行,到run,然后再到数据步开始位置;

6)proc print就是打印当前数据集;就是我们刚刚操作的sfz数据集。

Date、time、datetime类型:

 1)标准时间的时间戳方法;

读文本文件中的数据:

在目录中准备abc.txt文档

 

 

 

 代码说明:

1)%let定义宏变量 f1,指向abc.txt完整的地址;

2)filename语句是用fil来指代f1这个文件,类似文件别名;

3)data temp.hw: 我们在temp逻辑库中建立一个hw的数据集;

4)infile fil: 表示我们的数据要从fil中读,之前我们都是从cards读;

5)input: 两个列,都是数值型的,默认8位;

6)run;反复循环读;

7)proc print:检查确实将文件的数据读进来了。

另外一个读文件的例子:

列指针控制读取:

代码说明:

1)@1:这种叫列指针;另外还有行指针、搜索指针、绝对指针、相对指针等;指针是很复杂概念,那么复杂的非结构化的文件,SAS也是可以读出来的。

列控制符号:

 

代码说明:

1) $: 表示字符串;

2)1-3: 从第1个字符到第3个字符;4-9 从第4个字符到第9个字符;10-13:从第10个字符到第13个字符;

分隔符的方法:

 代码说明:

1)dlm语句:分隔符是逗号;默认是空格;

2)fin1指向abc2.txt文件;

3)$  表示该列是字符串;

写外部文件:

data _null_;
set mydb.student;
file 'c:\temp\stu1.txt';
put id name $ sex $ score;
run;

代码说明:

1)set mydb.student: 指定数据集;

2)file指定要写的文件;

3)put语句将数据集中的数据写进文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值