SAS中文论坛
标题:
问一个sas题目哈,请高人指点
[打印本页]
作者:
shiyiming
时间:
2010-10-1 20:20
标题:
问一个sas题目哈,请高人指点
Given the contents of the raw data file TYPECOLOR.DAT:
----+----10---+----20---+----30
daisyyellow
The following SAS program is submitted:
data FLOWERS;
infile 'TYPECOLOR.DAT' truncover;
length
Type $ 5
Color $ 11;
input
Type $
Color $;
run;
What are the values of the variables Type and Color?
A. Type=daisy, Color=yellow
B. Type=daisy, Color=w
C. Type=daisy, Color=daisyyellow
D. Type=daisy, Color=
在sas上运行了,不知道为什么选D,也许本身对truncover不是很了解吧
作者:
shiyiming
时间:
2010-10-1 22:11
标题:
Re: 问一个sas题目哈,请高人指点
这是一个input外部文件的问题,包含4个知识点:
[quote:1mg94ca3]infile 'TYPECOLOR.DAT' truncover;[/quote:1mg94ca3]
1 infile语句没有使用dlm,dsd选项,这意味着如果后面的input语句使用list模式的话,将使用默认的分隔符-空格;
2 infile语句使用了truncover选项取代默认的flowover,避免遇到字段缺失时从下一行继续读取;
[quote:1mg94ca3]length Type $ 5 Color $ 11;[/quote:1mg94ca3]
3 length语句指定了type,color为character变量,一个变量的length为8,一个为11;
[quote:1mg94ca3]input Type $ Color $;[/quote:1mg94ca3]
4 input语句的写法表明使用的是分隔符固定的list模式,2个变量由分割符隔开,读入时的字符长度由分隔符决定,但能有效存储的字符长度由变量的length决定.
综合起来就是: 把外部数据集里的一行"daisyyellow",以空格为分隔符依次读入为2个变量,因为没空格,就把"daisyyellow"整个读入为变量type了,但type的length只有5,因此截断后,type的值只省下"daisy";而变量color没值可读,truncover又控制着不会到下一行继续读,也不会报错,因此color是的值就是missing的了
作者:
shiyiming
时间:
2010-10-2 19:48
标题:
Re: 问一个sas题目哈,请高人指点
嗯嗯,谢谢你哈,我懂了,谢谢你的讲解。由于是列表输入,因此需要空格或分隔符来表示不同的变量值,
由于没有空格或分隔符,因此第二个就不读取数据了,被赋值为缺失值,谢谢~!
作者:
shiyiming
时间:
2012-7-11 15:16
标题:
Re: 问一个sas题目哈,请高人指点
把外部数据集里的一行"daisyyellow",以空格为分隔符依次读入为2个变量,因为没空格,就把"daisyyellow"整个读入为变量type了,但type的length只有5,因此截断后,type的值只省下"daisy";而变量color没值可读,truncover又控制着不会到下一行继续读,也不会报错,因此color是的值就是missing的了
精辟!!!
作者:
shiyiming
时间:
2012-9-2 19:11
标题:
Re: 问一个sas题目哈,请高人指点
讲解的太好了。深入浅出,通俗易懂啊
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2