全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6310 7
2013-09-23
data ff;
input a b c @@;
cards;
1 2 .
3 . .
4 4 5
;
run;

data mif;
set ff;
nmiss=nmiss(of _numeric_);
run;
为什么可以写成nmiss=nmiss(of a b c)但是写成nmiss=nmiss(of _numeric_)就出问题了
nmiss运行结果分别为2 3 1


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-9-23 13:28:04
这里的显示是没有问题的:
1. _numeric_会包含所有数值型的变量
2. 变量nmiss也是数值型的
3.函数nmiss()执行的时候变量nmiss的值是空的

data ff;
input a b c @@;
cards;
1 2 .
3 . .
4 4 5
;
run;

data mif;
set ff;
length nmiss $8;
nmiss=cats(nmiss(of _numeric_));
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-23 13:53:44
pobel 发表于 2013-9-23 13:28
这里的显示是没有问题的:
1. _numeric_会包含所有数值型的变量
2. 变量nmiss也是数值型的
太感谢了 谢谢你了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-23 13:58:26
楼主的程序没错啊!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-24 04:22:33
pobel 发表于 2013-9-23 13:28
这里的显示是没有问题的:
1. _numeric_会包含所有数值型的变量
2. 变量nmiss也是数值型的
data ff;
input a b c @@;
cards;
1 2 .
3 . .
4 4 5
;
run;

data mif;
set ff;
nmiss=nmiss(of _numeric_)-1;
run;
it looks the value of NMISS is needed to minus 1. Why? I don't know. I didn't get any helpful information from SAS help.


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-24 08:08:03
tangliang0905 发表于 2013-9-24 04:22
data ff;
input a b c @@;
cards;
data mif;
set ff;
nmiss=nmiss(of _numeric_)-1;
run;

在这个data步中nmiss(of _numeric_)就相当于nmiss(a,b,c,nmiss), 而变量nmiss在函数nmiss()执行时总是空的,所以变量nmiss的值会比预想的大1。

这里需要注意的是:data步中所有的变量都是在编译阶段在pdv中创建的。把例子稍微改动一下可能会清楚一点:

data ff;
input a b c @@;
cards;
1 2 .
3 . .
4 4 5
;
run;

data mif;
set ff;
put _all_;
d=nmiss(of _numeric_);
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群