您好,欢迎访问三七文档
数据清理技术冯国双中国疾控中心卫生统计室数据清洗从数据收集结束,到统计分析之前,需要对数据做的清理工作数据清洗数据双录入对比数据合并查找重复值查找缺失值查找异常值双录入对比Excel用到的函数:If函数If(判断条件,条件满足返回值,条件不满足返回值)exact函数——比较两个文本是否相同exact(比较文本1,比较文本2)offset函数——返回给定偏移量的新区域offset(参照区域,行,列)双录入对比small(数据区域,第几小)计算单元格范围的第几小的数值Column()返回单元格所在号Row()返回单元格所在行号双录入对比SAS命令:proccomparebase=数据集compare=数据集nosummary;by变量1变量2……;run;双录入对比proccompare语句调用数据比较过程,选项base和compare分别指定两个比较和被比较的数据集;nosummary的作用是不显示一些概括性的结果。by语句指定的变量有点类似于索引的作用,通常指定id号。如果两个数据集的观测数不同,利用by语句可以保证它们比较的仍然是同一个id号,而不会出现错位比较的情况。双录入对比dataa1;inputidggenderagemarriageheightweightnation;cards;……(数据);dataa2;inputidggenderagemarriageheightweightnation;cards;……(数据);proccomparebase=a1compare=a2nosummary;run;双录入对比双录入对比查找缺失值Excel函数:If函数If(判断条件,条件满足返回值,条件不满足返回值)exact函数——比较两个文本是否相同exact(比较文本1,比较文本2)offset函数——返回给定偏移量的新区域offset(参照区域,行,列)查找缺失值small(数据区域,第几小)计算单元格范围的第几小的数值Column()返回单元格所在号Row()返回单元格所在行号查找缺失值SAS可用missing函数实现如果结合数组和自动变量,可以一次性实现所有变量缺失值的输出查找缺失值dataa1;inputidggenderagemarriageheightweightnation;miss_g=missing(g);miss_gender=missing(gender);miss_age=missing(age);miss_marriage=missing(marriage);miss_height=missing(height);miss_weight=missing(weight);miss_nation=missing(nation);cards;……(数据);procprint;run;查找缺失值部分结果查找缺失值利用数组和自动变量datamissing;seta;arraycha[*]_character_;doi=1todim(cha);ifmissing(cha[i])thenoutput;end;arraynum[*]_numeric_;doi=1todim(num);ifmissing(num[i])thenoutput;end;dropi;procprint;run;查找缺失值缺失值结果查找重复值Excel函数:countif(计数区域,条件)根据指定条件,在计数区域内计数查找重复值SAS命令:procsortout=数据集nodupkeynouniquekey;bydescending变量1descending变量2……;run;查找重复值procsort语句调用排序过程。选项out=数据集指定排序后的数据集名。因为排序后数据发生了变化,因此可指定该选项将排序后的数据存放到一个新的数据集中。如果不加该选项,排序后的数据集将覆盖原有数据集,这样你就找不回原有的未排序的数据了。选项nodupkey表示如果by语句指定的排序变量有重复值,则删除重复值。如按id排序,如果id有重复值,则只保留重复值中的第一个值,删除其它值。选项nouniquekey的作用跟nodupkey正好相反,如果by语句指定的排序变量都是唯一值,则将其删除。如按id排序,如果id没有有重复值,则全部删除。查找重复值by语句指定排序的变量,可以指定多个。选项descending表示按降序排序,如果不加该选项,默认的是按升序排序。当需要查找重复值时,by语句指定的变量就是需要查找的重复值变量。查找重复值dataa1;inputidggenderagemarriageheightweightnation;cards;……(数据);procsortnouniquekeyout=bb;bygenderagemarriageheightweight;run;procprintdata=bb;run;查找重复值5个变量均重复的观测查找异常值Excel函数:If函数If(判断条件,条件满足返回值,条件不满足返回值)结合各种算术运算符、比较运算符、逻辑运算符等查找异常值常见运算符符号说明示例+和-加减运算=3+2-4=1*和/乘除运算=3*2/4=1.5^乘幂=3^2=9,=16^(1/2)=4=、、、、=、=等于、不等于大于、小于大于等于、小于等于=(A2=9),判断A2是否等于9=(A29),判断A2是否不等于9=(A2=9),判断A2是否大于等于9and多个表达式同时成立and(A19,B12),必须同时满足A1大于9和B1小于2or多个表达式至少一个成立or(A19,B12),满足A1大于9或B1小于2这两个条件之一即可查找异常值SAS可用if语句或where语句结合各种运算符来查找异常值查找异常值SAS中的常见运算符算术运算符比较运算符逻辑运算符+(加)、-(减)*(乘)、/(除)**(幂次方,如**3表示3次方,**2表示2次方)=(等于)、^=(不等于)(大于)、(小于)=(大于等于)、=(小于等于)in,表示其中之一,如gradein(2,4,6)表示只要是grade为2、4、6中的其中一个就算符合条件;deptnotin(“A”,“B”)表示只要dept不是“A”或“B”就算成立&或and(表示2个表达式同时成立)|或or(表示两个表达式至少一个成立)查找异常值dataa1;inputidggenderagemarriageheightweightnation;cards;……(数据);datab1;seta1;if(gendernotin(1,2))|(age=18orage=60)|(height=150orheight=200)|(weight=40orweight=100)|(marriagenotin(1,0))|(nationnotin(1,2));procprint;run;查找异常值查找异常值datab2;seta1;if(gendernotin(1,2,.))|(age^=.and(age=18orage=60))|(height^=.and(height=150oreight=200))|(weight^=.and(weight=40orweight=100))|marriagenotin(1,0,.)|nationnotin(1,2,.);procprint;run;查找异常值查找异常值datagender(where=(gendernotin(1,2,.)))age(where=(notmissing(age)and(age=18orage=50)))marriage(where=(marriagenotin(1,0,.)))height(where=(notmissing(height)and(height=150orheight=200)))weight(where=(notmissing(weight)and(weight=40orweight=100)))nation(where=(nationnotin(1,2,.)));seta1;run;查找异常值procprintdata=gender;varidgender;procprintdata=age;varidage;procprintdata=marriage;varidmarriage;procprintdata=height;varidheight;procprintdata=weight;varidweight;procprintdata=nation;varidnation;run;查找异常值genderheightageweightmarriage一舟春风钓长河,两岸翠绿荡山歌。疑临陶翁忘返处,却是冯君信手乐。盆景冯国双配诗陈景武
本文标题:数据清洗技术
链接地址:https://www.777doc.com/doc-7032453 .html