SAS 对单个数据集的处理
-- 查询 SAS 已安装模块
proc setinit noalias;
run;
在DATA中可以使用SET、MERGE、MODIFY或UPDATE语句对数据集进行加工。
a、选取部分变量:
1、在 SET 语句中使用
data work.shos_part1;
set sashelp.shoes (keep=Product Sales)
run;
当然使用 DROP= 可以起到同样的效果。
2、在数据集选项中使用 KEEP= 或 DROP=
data work.shos_part1 (keep=Product Sales);
run;
*两种方法虽然起到的效果是一样的,但由于在 SET语句中使用 KEEP= 是把所选定的变量读入PDV,而 数据集选项 KEEP= 语句是把所有的变量读入PDV,在读取数据进行筛选,所以在进行大规模数据运算时, SET语句 KEEP= 选项方法效率更高。
3、使用 KEEP 或 DROP 语句
data work.shos_part1;
set sashelp.shoes;
keep Product Sales;
run;
drop 语句同样也行。
b、 SAS 操作符:
运算操作符
比较操作符
逻辑操作符
其他操作符
c、选取部分观测:
在建立新数据集时,有以下两种方式可以通过已有的数据集选取适合的观测记录到新数据集:
1、只选择满足条件的观测
2、删除不符合条件的挂测
1、使用 DELETE语句删除不满足条件观测:
data work.address;
set saslib.contact;
if address = "" then delete;
run;
2、使用 IF 语句选取满足条件的观测:
data work.manager;
set saslib.contact;
if position='Manager' ;
run;
3、使用 output 语句建立多个数据集:
使用OUTPUT语句将符合条件观测写入到数据集,其数据集必须是data步中出现的数据集
data work.contact_manager;
data work.contact_others;
set saslib.contact;
if position='Manager' then output work.contact_manager;
else output work.contact_others;
run;
操作所选取观测对应的变量:
data work.inventory2;
set saslib.inventory;
if region='BJ' THEN price = price * 1.2;
else price = price * 1.05; #无 else 语句也行
run;
do 语句:根据 if 条件执行 do 语句组合
data work.inventory4;
set saslib.inventory;
if region='BJ' THEN do;
Price = Price * 1.3;
Instock = Instock * 2;
END;
else do ;
---------
end;
run;
分组与排序 --- sort 过程
分组之前必须排序。
proc sort data=sashelp.class out=class_qw;
by sex height /* 分组项必须在排序里面 */
run;
data work.class_qw; /* 获取第一个和最后一个项 */
set work.class_fl;
by sex;
if first.sex or last.sex;
run;
变量重命名: rename语句和 rename= 选项 -- 3种方法
data newanme (rename=(name=full_name));
set sashelp.class (rename=(name=full_name));
rename name=full_name;
run;
** 数据集选项 rename= ,新变量名在data步中就已经导入 PDV 中,如在data 中 需要使用 该变量时应用新变量名称;在其他方法中,由于其是在输出数据集时改变变量名,因此在data步中使用该变量时,还是用旧变量名称。
--SAS使用已有变量进行运算可直接创建新变量
--累加求和
data ex2;
set ex1(obs=5);
total_age+age; /* only use the way or use retain state */
run;
---- 未完待续
SAS 对单个数据集的处理相关推荐
- SAS中删除数据集学习
(较多借鉴来自师傅,仅学习记录而已,勿喷) /*创建数据集m*/ data m; set sashelp.class; run; /*1 使用proc delete 删除m*/ proc delete ...
- SAS导入Excel数据集时报错:“ERROR: 连接: 没有注册类”
ERROR: 连接: 没有注册类 ERROR: LIBNAME 语句出错. 连接失败.详细信息,请参阅日志. 出现原因:SAS和office数据接口引擎位数不统一 SAS软件导入Microsoft O ...
- Spark Mllib里的如何对单个数据集用斯皮尔曼计算相关系数
不多说,直接上干货! import org.apache.spark.mllib.stat.Statistics 具体,见 Spark Mllib机器学习实战的第4章 Mllib基本数据类型和Mlli ...
- python读取sas数据集_利用Python获取SAS和R自带数据集
图:北京-奥森公园-2018年4月 无论是SAS.R还是Python,本身都自带一些数据集,对于初学者来说,可以通过这些自带的小数据集进行编程练习,无疑是非常方便的.SAS.R作为统计分析软件,本身自 ...
- SAS的基本使用介绍1(数据集建立与输入输出格式)
SAS的基本使用 提前说明:本软件安装较为复杂,而且所占空间很大 运行helloworld Data a; File print; Put 'hello world!'; Run; Proc prin ...
- python读取sas数据集_SAS之DATA步运行机制
相信了解SAS软件的朋友都知道,SAS主要由DATA步和PROC步组成,其中DATA步作为数据读入.清洗.整理的主要程序步,学好DATA就显得尤为重要.而了解DATA步,重中之重就得了解PDV(Log ...
- SAS 对数据的拼接与串接
SAS 对数据的拼接与串接 使用SAS对数据进行串接.合并.更新与修改. 1. 数据集的纵向串接 数据集的纵向串接指的是,将两个或者多个数据集首尾相连,形成 一个新的数据集. 对数据集的纵向串接可以通 ...
- sas sql 读取最后一行数据_SAS基础编程和数据处理
前几天讲了数据分析中SQL的基本使用方法以及具体案例分析思路,接下来会继续讲统计基础以及在SAS软件内的应用,在这之前,本文先进行SAS基础使用编程的基础介绍,后续会主要阐述SAS软件内的统计数学的应 ...
- SAS学习笔记(四)第8/9/10章
一.可视化数据 1. ODS图形概述 在统计过程中使用图形: ods图形选项默认是开启的,若你发现是关闭的,则在将要运行的程序之前用以下语句开启:ods graphics on:则支持ods图形的统计 ...
最新文章
- c语言时间库函数#includetime.h
- 您有一份意外的福利待领取!
- php 存储多选项_php高并发之opcache详解
- AUTOSAR从入门到精通100讲(二十二)-AUTOSAR通信篇—CANTP模块
- 【nyoj 270】数的分解(统计因子模板)
- 华为华三开启snmp服务
- 深度报告 | 4G应用启示录与5G应用展望
- cropperjs裁剪头像功能实现总结
- appfuse_AppFuse 3.0
- 在线供应链系统服务方案:构建企业供应链平台业务、功能、技术管理架构
- 《CCNet:Criss-Cross Attention for Semantic Segmentation》论文笔记
- Galaxy Note8面世,“三维立体”发布会传递怎样的信号?
- 旷视首席科学家孙剑:10年扎在书堆里,13年磨砺成首席
- linux 软链接 相对路径,Linux入门之ln命令创建软链接的绝对路径和相对路径详解(Ubuntu)...
- 关于backgroundColor=red写法是否正确的解答
- 分享 9 条消除 if...else 的锦囊妙计
- matplotlib plot python rgb2gry 显示灰度图像
- 第三十二章 XML基础知识概念
- 【Python数据分析】波士顿房价分析小例子
- php 表格导入excel插件,BootStrap Fileinput插件和表格插件相结合实现导入Excel数据的文件上传、预览、提交的步骤...