cmiss与nmiss函数的区别
来源:互联网 发布:男科医院网络预约挂号 编辑:程序博客网 时间:2024/05/29 15:13
cmiss与nmiss函数的区别: 两者都是用来对缺失个数进行统计,两者区别就在于前者既能用于数值型也能用于字符型,而nmiss则只能用于数值型。
The CMISS function does not convert any argument. The NMISS function converts all arguments to numeric values.cmiss在计算缺失值的时候,不会对参数进行转换,而nmiss则会把所有的参数转换为数值然后来计算缺失值。
例1:
data survey;
input id diet exer hours xwk $ educ $;
total_miss=nmiss(diet,exer,hours,xwk,educ);
datalines;
1 1 . 1 A .
1 . 2 B C 2
1 . D . . .
1 1 E F * .
2 . 9 & 3 .
2 5 9 2 4 .
2 . 3 . 5 3
3 2 . . . .
;
例2:
data survey;
input id diet exer hours xwk $ educ $;
total_miss=cmiss(diet,exer,hours,xwk,educ);
datalines;
1 1 . 1 A .
1 . 2 B C 2
1 . D . . .
1 1 E F * .
2 . 9 & 3 .
2 5 9 2 4 .
2 . 3 . 5 3
3 2 . . . .
;
在使用这两个函数的过程中,我们往往会发现在统计缺失个数时候,经常出现实际计算出来的值要大于缺失值的个数,这是为什么呢?
举个简单的例子:
data tmp;
v1=.;v2='';x=3;output;
v1=1;v2='A';x=2;output;
v1=3;v2='';x=.;output;
v1=.;v2='B';x=2;output;
run;
接下来用cmiss函数进行行缺失个数的统计:
data tmp1;
set tmp;
sum_miss=cmiss(of _all_);
run;
我们发现sum_miss的每一行值都比实际值要大1,为了了解这个过程,我们来通过put语句展示一下过程:
data tmp1;
set tmp;
put _all_;
sum_miss=cmiss(of _all_);
run;
我们发现在统计行缺失时,由于使用的_all_,所以把sum_miss变量也包含进去了,所以才会产生如上结果。
那么为了避免出现这种结果,我们可以用两种办法:
第一种:对sum_miss赋值,例如:
data tmp1;
set tmp;
sum_miss = 0;
sum_miss=cmiss(of _all_);
run;
第二种:将变量列出来,例如:
data tmp1;
set tmp;
sum_miss=cmiss(v1,v2,x);
run;
阅读全文
0 0
- cmiss与nmiss函数的区别
- 函数与过程的区别
- 宏与函数的区别
- 方法与函数的区别
- 函数与方法的区别
- 指针函数与函数指针的区别
- 内联函数与外联函数的区别
- 函数重载与虚函数的区别
- 虚函数与纯函数的区别
- 内联函数与外联函数的区别
- 指针函数与函数指针的区别
- 指针函数与函数指针的区别
- 指针函数与函数指针的区别
- 函数表达式与函数语句的区别
- 指针函数与函数指针的区别
- 简单函数与构造函数的区别?
- 仿函数与普通函数的区别
- 指针函数与函数指针的区别
- Spring Cloud Eureka与Ribbon——服务发现与消费
- vue-cli 路由重定向
- vector,map
- 读书笔记 数据结构(c语言版)
- 历史的真相很“残酷”
- cmiss与nmiss函数的区别
- HDU 1875 畅通工程再续【最小生成树Kruskal】
- 5.定义一个可以接收三个数字的函数,函数体内实现三个数字的排序输出 →(javascript代返回值的函数的申明和调用)
- java中的注解
- 常用正则表达式
- java反射,类加载器以及配置文件的结合使用
- 2-4
- OpenSim教程三——使用OpenSim辅助开发减少行走代谢值的可穿戴式设备
- linux下jdk的安装