全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5930 6
2012-06-25
例子是little SAS book 57页,讲解missover选项的例子,我因为没有这本书的数据,想手动输入SAS,保存为.dat文件,然后再学习该missover的程序。结果在手动输入的时候,发现sas只读取第一行数据,求解。同时追问missover的作用,书上讲的没太弄懂。谢谢。
程序如下:
DATA SCORES;
INPUT NAMES $ TEST1 TEST2 TEST3 TEST4 TEST5;
CARDS;
Ngu 89 76 91 82
Ramos 67 72 80 76 86
Robbins 76 65 79
;
PROC PRINT DATA=SCORES;
TITLE 'scores of students';
RUN;
二维码

扫码加我 拉你入群

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

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

全部回复
2012-6-25 01:57:49
论坛上有数据和代码下载
二维码

扫码加我 拉你入群

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

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

2012-6-25 06:30:54
sas默认一行读完了要读下一行,第一行没有test5,于是得跳到第二行去读,但是第二行第一个是Ramos,字符型,test5在input语句里是数值型,小sas为难了,于是就停下来了。
所以呢,缺失的数值型变量在样本里用“.”来表示,这样子小sas就知道这个是缺失值。
The MISSOVER option tells SAS that if it runs out of data, don’t go to the next data line. Instead, assign missing values to any remaining variables.
实际当中可能会遇到不友好的数据,就像例子一样,缺失值直接空着。missover先生帮助我们解决这种问题。一行数据不足时,认为剩下的变量是缺失值。
楼主可以把数据复制到文本文件,然后把扩展名从txt改成dat,这样便可解燃眉之急。
good luck~~
二维码

扫码加我 拉你入群

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

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

2012-6-25 07:30:31
DATA SCORES;
infile datalines missover;
INPUT NAMES $ TEST1 TEST2 TEST3 TEST4 TEST5 ;
CARDS;
Ngu 89 76 91 82
Ramos 67 72 80 76 86
Robbins 76 65 79
;
PROC PRINT DATA=SCORES;
TITLE 'scores of students';
RUN;
二维码

扫码加我 拉你入群

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

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

2012-6-25 08:44:36
yushengfan 发表于 2012-6-25 06:30
sas默认一行读完了要读下一行,第一行没有test5,于是得跳到第二行去读,但是第二行第一个是Ramos,字符型, ...
茅塞顿开,谢谢指导。新手入门,请多多指教。
二维码

扫码加我 拉你入群

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

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

2012-6-25 08:45:13
webgu 发表于 2012-6-25 07:30
DATA SCORES;
infile datalines missover;
INPUT NAMES $ TEST1 TEST2 TEST3 TEST4 TEST5 ;
谢谢指导。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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