楼主: yyliwenwen
6089 11

[原创博文] 菜鸟求助~SAS读取数据问题 [推广有奖]

  • 0关注
  • 0粉丝

高中生

60%

还不是VIP/贵宾

-

威望
0
论坛币
18 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
216 点
帖子
17
精华
0
在线时间
32 小时
注册时间
2009-9-4
最后登录
2018-10-9

楼主
yyliwenwen 发表于 2010-6-13 10:41:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据文件<test.txt>:
John Garcia     114  Maple Ave.
Sylvia Chung   1302  Washington Drive
Martha Newton    45  S.E. 14th St.

程序:
Data homeaddress;
Infile 'D:\Lesson\sas\Test Data\HomeAddress.txt' ;
Input Name $ 1-15 Number 16-19 Street $ 22-37;
Proc print data=homeaddress;
Run;

输出:
Obs       Name        Number         Street
1     John Garcia      114     Sylvia Chung   1

请教,
怎么第一行没读完就到了下一行呢,SAS读数据不是Observation by Observation吗?
二维码

扫码加我 拉你入群

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

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

关键词:读取数据 observation Washington observat address Maple 程序

回帖推荐

yyliwenwen 发表于8楼  查看完整内容

多谢楼上各位~ 我也找到了点资料,分享下~ (来自《SAS语言抛砖引玉》http://www.mlmatrix.com/ReadNews.asp?NewsID=675) FLOWOVER/ MISSOVER/ TRUNCOVER/ SCANOVER/ STOPOVER 这5个含有over的选项之所以放在一起,是因为它们都用于读取记录末尾不完整的数据。 FLOWOVER是input默认的读取方式,缺省即是FLOWOVER,当前数据行所含数据个数相比变量个数不够时,SAS会从下一条记录继续读取。很 多情况下,原始数据是按照行排 ...

本帖被以下文库推荐

沙发
yoyo130131 发表于 2010-6-13 10:44:34
同问,迷惑中。。。

藤椅
yyliwenwen 发表于 2010-6-13 10:57:33
2# yoyo130131 你也是初学吗?用的什么教材咧?我在看<Little SAS book>,但感觉有些语言差异,进度好慢

板凳
flutter88 发表于 2010-6-13 11:06:10
Data homeaddress;
Infile 'D:\Lesson\sas\Test Data\HomeAddress.txt'  truncover;
Input Name $ 1-15 Number 16-19 Street $ 22-37;
Proc print data=homeaddress;
Run;

报纸
pobel 在职认证  发表于 2010-6-13 11:10:29
帮助/infile语句 missover, truncover或lrecl pad 选项
和谐拯救危机

地板
xiaosanmao 发表于 2010-6-13 11:25:17
data t;
Input Name $ 1-15 Number 16-19 Street $ 22-37;
cards;
John Garcia     114  Maple Ave.
Sylvia Chung   1302  Washington Drive
Martha Newton    45  S.E. 14th St.
;proc print;run;

7
pobel 在职认证  发表于 2010-6-13 11:30:34
xiaosanmao 发表于 2010-6-13 11:25
data t;
Input Name $ 1-15 Number 16-19 Street $ 22-37;
cards;
John Garcia     114  Maple Ave.
Sylvia Chung   1302  Washington Drive
Martha Newton    45  S.E. 14th St.
;proc print;run;
如果放到外部文件读取就会出现楼主遇到的问题了。
和谐拯救危机

8
yyliwenwen 发表于 2010-6-13 11:59:59
多谢楼上各位~
我也找到了点资料,分享下~

(来自《SAS语言抛砖引玉》http://www.mlmatrix.com/ReadNews.asp?NewsID=675
FLOWOVER/ MISSOVER/ TRUNCOVER/ SCANOVER/ STOPOVER 这5个含有over的选项之所以放在一起,是因为它们都用于读取记录末尾不完整的数据。
FLOWOVER是input默认的读取方式,缺省即是FLOWOVER,当前数据行所含数据个数相比变量个数不够时,SAS会从下一条记录继续读取。很 多情况下,原始数据是按照行排好的,不够长度一般代表有部分数据缺失,这时自然不希望继续往下面读下一个数据行,所以就需要后面的这些选项进行处理。
MISSOVER 如果记录行末尾没有足够的数据对应变量或者有不够列宽的数据对应变量,那从当前变量起,到变量列表中最后一个变量都置为缺失值;
TRUNCOVER 跟MISSOVER不同的是如果末端的数据不够列宽则从这里截断,读取的部分数据被保留下来,当前变量之后的变量就会置为缺失值;
SCANOVER 当前记录行找不到@'character-string'表达式指定的字符串时,继续往下面记录行进行查找,一直到找到为止。默认情况或者只有FLOWOVER选项的情况都是与指定SCANOVER等价的,也就是说SCANOVER与MISSOVER, STOPOVER一起使用才是有意义的。
STOPOVER 当前记录行所含数据不够时,停止执行data步,置自动变量_ERROR_为1,将已经读写在数据集的打印出来。如果要创建的数据集已经存在,则中止创建数据集。
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

9
sailingyf 发表于 2010-6-13 14:43:56
赞~~

原来missover是起这个作用的,之前看前辈写的程序,一直不理解。。

10
C100 发表于 2012-8-2 15:15:26
学习了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 08:39