科研统计助手
医学科研资讯
前沿热点动态
统计分析服务
当前位置: 菁英统计工作室 > 统计知识 > 理论知识 > 基础统计知识 > 正文
缺失值的处理
作者:Admin  更新时间:2010-06-10 本条信息浏览人次共有

缺失值表示当前记录的某变量值上没有数据。
1.
缺失值的类型
·
数值型:读取数据时将(.)表示数值型缺失值,打印时也用点表示;
·
字符型:读取数据时将空格即没有任何值认为是缺失值,打印时不输出任何字符;
·
特殊缺失值:有时候在同一个数据中,我们需要区分缺失值,例如,调查问卷中空缺的选项有些是表示受访者拒绝回答,有些表示受访者失访,这时如果要表示不同性质的缺失值,则需要用特殊缺失值。特殊缺失值用点(.)开始,后面紧跟一个字母或者下划线,也就是可以表示27种不同的缺失值,如,
a .z ._
那怎么存储和打印这些缺失值呢?
在数据集中,特殊缺失值存储为大写字母或下划线,打印输出也是显示大写字母或下划线,点被省略。

2.如何读取缺失值?
数值型(.)和字符型缺失值(blank)SAS默认的读取方式;对于特殊缺失值,要么在数据中表示为特殊缺失值的形式,这样可以直接读取,而对于用字符表示的特殊缺失值,需要使用missing语句来事先指定。例如:
data period_a;
   missing X I;
   input Id $4. Foodpr1 Foodpr2 Foodpr3 Coffeem1 Coffeem2;
   datalines;
1001 115 45 65 I 78
1002 86 27 55 72 86
1004 93 52 X 76 88
1015 73 35 43 112 108
1027 101 127 39 76 79
;
proc print data=period_a;
   title 'Results of Test Period A';
   footnote1 'X indicates TESTER ABSENT';
   footnote2 'I indicates TEST WAS INCOMPLETE';
run;
也可以直接在数据块中用.I代替I.X代替X,那前面的Missing语句可以省略。
Tips
特殊缺失值是大小写不敏感,一律转化为大写字母;而早先的版本是区分大小写的。
3.缺失是如何产生的?
当数据步每一步循环开始,SAS将每一个变量值都赋值为缺失值,然后再往里面写入数据。如果给变量赋予缺失值或者变量没有获得可用的值,该变量值就为缺失值。具体在以下一些情况中产生缺失值。
·
来自原始数据;
·
由用户赋予变量缺失值;
·
算术运算中由缺失值产生缺失值;
·
非法的运算产生缺失值,如用0除;
·
不恰当的数据类型转换或赋值;
·
数据集连接与合并。
4.缺失值如何运算与分析?
·
排序如何处理缺失值?
数值型变量:从小到大依次为._<.<.A<…<.Z<-n<0<+n
字符型变量:不可打印字符<缺失值<所有可打印字符。
·
数学运算
缺失值数学运算的结果仍然是缺失值。
·
逻辑运算
逻辑运算中,缺失值与0都被认为是false,其他值为true
·
忽略缺失值
统计分析过程往往会自动将缺失值排除在分析之外;
函数计算时往往忽略缺失值。

例如:
data missing_test;
    x=.;
    y=5;
    a=x+y;
    b=sum(x,y);
    c=5;
    c+x;
    put a= b= c=;
run;
则在LOG窗口中显示
a=. b=5 c=5
其中,数学运算由缺失值产生缺失值,SUM函数会自动忽略掉缺失值,累加语句同样会忽略掉值为缺失值的累加量。
总结
将要分析的数据读取到SAS数据集并不是大功告成了,很多时候直接获得的数据并不能满足要求,这就需要进一步处理,可能是增加变量,可能是删除记录,也可能是排序,甚至改变数据集的结构。本章的六个过程告诉你如何去整理还不合要求的数据集。
 
上一篇:正态分布的由来
下一篇:为什么不能用t检验取代方差分析

本站所发表的文章,大部分严格筛选,来源于各相关专业论坛或专业网站,内容仅供大家学习和参阅尊重原作者版权,勿用于商业用途,转载请注明来源。如有学术争议的文章,或可能与事实不符的,与本站立场无关。如有影响到您权益的文章,请及时通知本站,本站立即删除。谢谢监督。
推荐阅读
 
热门文章

Copyright 2010 Powered By 菁英统计工作室 www.tjstat.com 地址1:武汉市珞瑜路1037号 430074 ; 地址2:武汉市航空路13号 430030
邮箱:tjstat@126.com QQ: 点击这里给我发消息 点击这里给我发消息
鄂ICP备10020011号 |