1.查找缺失值的万能程序

data missing;
set sasuser.xb;
array cha[*] _character_  \*利用*好不指定cha数组中的字符型变量个数*\
do i=1 to dim(cha);       \*指定循环次数为数组cha中的元素数*\
if missing(cha[i]) then output;
end;
array num[*] _numeric_;\*利用*号不指定num数中的数值型变量个数*\
do i=1 to dim(num);    \*指定循环次数为数组num中的元素数*\
if missing(num[i]) then output;
end;
proc print;
run;

cha[*]和num[*]的意思是建立数组cha和num,但不指定数组中的元素数,具体有多少个由SAS根据变量来自己判断。

dim()函数是专门针对数组的函数,它的作用是返回指定数组所含的元素个数。如指定数组array x[*]a b c,则dim(x)返回值为3.

2.查找异常值

基本格式为:

data 新数据集;

set 已有数据集;

if|where 条件语句;

proc print;

run;

这几句语句的意思是建立一个新数据集,然后利用set语句把所有的数据集复制进来,但并非全部复制,而是根据if或where语句指定的条件,仅复制符合条件(如缺失或异常等)的记录。

**if和where的区别

1)if和where都可以使用的场合

在利用set语句有条件地复制数据集时,set后紧跟着条件语句,此时用if和where都可以。但where的运行速度要快一点。

2)只能用if的几种场合

使用SAS的自动变量时;如果指定的条件变量是新产生的变量,只能用if,不能用where。

3)只能用where的几种场合

当使用某些特殊运算符时(between…and,contains);当调用某一proc过程时,如果要选择部分观测执行该过程,只能用where语句,不能用if语句。

还有当做数据集选项使用时,只能用where,不能用if。

3.查找异常值的万能程序

%let data=sasuser.xb;
%let id=id;
%macro outline(var=,low=,high=);
data outline;
set &data.(keep=&id. &var.);
length variable $20. reason $20.;
variable="&var.";
value=&var.;
if &var.<&low. and not missing(&var.) then do;
reason="过低";
output;
end;
else if &var.>&high. and not missing (&var.) then do;
reason="过高";
output;
end;
drop &var.;
proc append base=outliner1 data=outline;
run;
%mend outline;
%outline(var=height,low=150,high=200);
%outline(var=weight,low=40,high=100);
%outline(var=y1,low=1,high=5);
%outline(var=y2,low=1,high=5);
%outline(var=y3,low=1,high=5);
%outline(var=y4,low=1,high=5);
%outline(var=y5,low=1,high=5);
proc print data=outliner1;
run;

需要修改的地方:第一行的数据集;第二行的id变量;最后几行的7个outline。

SAS学习之查找异常值相关推荐

  1. SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制...

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...

  2. SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理...

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 ...

  3. SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(2)数据获取与数据集操作 1. SET/SET效率高,建立的主表和建表索引的查询表一般不排序, 2. BY语句,DATA步中,BY语句规定 ...

  4. SAS学习步骤和参考书

    SAS的强大毋庸置疑,要精通SAS必先要熟悉其结构及不断提高自己的编程能力(虽然它有菜单可以用,其实一般都不用,写程序比菜单灵活多了,而且效率高多了,工作中都以编程为主.所以想点点鼠标就能精通SAS的 ...

  5. SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 ...

  6. python处理异常值--箱型图查找异常值并替换

    箱型图查找异常值并替换 定义为值大于上四分位或者小于下四分位的值位异常值,若是异常值,则用mean替换,项目中遇到的,但是这个可能或将0值也替换了,但是0值不是异常值,故而舍弃这种方法. import ...

  7. multimap学习之查找操作count,find,lower_bound,lower_bound,upper_bound,key_comp, value_comp

    本篇学习multimap查找和观察器操作,具体的函数如下 查找 count 返回匹配特定键的元素数量 (公开成员函数) find 寻找带有特定键的元素 (公开成员函数) contains (C++20 ...

  8. SAS学习笔记1——基础知识(库、PDV、变量选择、观测值排序、创建新变量

    SAS学习笔记1--基础知识 1.逻辑库.临时库.永久库 2.数据步 2.1数据步语法 2.2 数据步的编译和执行过程 2.3变量的选择 2.3.1 keep和drop语句 2.4变量的重命名rena ...

  9. 诚之和:什么是异常值?如何在统计数据中查找异常值

    异常值是数据集的重要组成部分.它们可以保存有关您数据的有用信息.异常值可以为您正在研究的数据提供有用的见解,并且它们可以对统计结果产生影响.这可能会帮助您发现不一致之处并检测统计过程中的任何错误.因此 ...

最新文章

  1. 软件工程项目组Z.XML会议记录 2013/09/18
  2. 嵌入式开发之工具---比开发手册更重要的一个命令 man page
  3. golang LMDB入门例子——尼玛,LMDB的文档真的是太少了
  4. 以下选项不是python打开方式的是-关于文件的打开方式,以下选项中描述正确的是...
  5. 什么是rip协议其优缺点_南京课工场IT培训:常见动态路由协议之———RIP动态路由实验...
  6. Python3 配置文件(configparser)(转载)
  7. kotlin字符串数组_Kotlin程序读取,遍历,反向和排序字符串数组
  8. [ECharts]echarts/config is not exists
  9. Learning Data Structure_2_线性表、栈和队列
  10. 微信小程序制作家庭记账本之一
  11. stdlib.h函数请单
  12. 官网下载Android Studio以及SDK
  13. RHCSA8考试-root密码破解
  14. ArcGIS for Desktop 10.2安装破解与使用图文详解
  15. 电工技术(3)—电路的分析方法二
  16. 图像处理之LSB替换隐写算法的实现
  17. 阿里云云盘扩容数据盘_Linux
  18. java 操作日志 log
  19. QNX系列:一、进程和线程
  20. JSR303 数据效验

热门文章

  1. 【备注】【C24】《Android 3D游戏开发技术详解与典型案例》PDF 下载
  2. python小波变换_基于python的信号小波分析
  3. 2021-06-03Leetcode 438.找到字符串中所有字母异位词
  4. 我是学计算机的,我也攒机了
  5. java实现图片转化为字符图片
  6. Element UI中点击按钮后不失焦?如何强制给它失焦
  7. 在爱与被爱的选择里,我选择了爱:伤感日志
  8. MATLAB—医学DICOM图像处理
  9. mc服务器切换模式显示英文字母,MC820高级设置说明.doc
  10. Android系统源码