楼主: 细沙
4480 12

问一个little sas book里很菜的问题,有关truncover [推广有奖]

  • 0关注
  • 0粉丝

硕士生

17%

还不是VIP/贵宾

-

威望
0
论坛币
33 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2949 点
帖子
55
精华
0
在线时间
226 小时
注册时间
2010-5-12
最后登录
2019-12-22

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
第四版59页讲truncover那里,数据如下(复制粘贴的,列可能没对齐,下面程序列数劳烦自己算下):
John Garcia       114    Maple Ave.
Sylvia Chung     1302    Washington Drive
Martha Newton      45    S.E. 14th St.
书中给出程序是:
DATA homeaddress;
   INFILE ’c:\MyRawData\Address.dat’ TRUNCOVER;
   INPUT Name $ 1-15 Number 16-19 Street $ 22-37;
RUN;
这里column已经对齐,为什么不能直接用column input来输入数据呢?一定要加truncover?
谢谢!


二维码

扫码加我 拉你入群

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

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

关键词:truncover little cover Book trun little Maple 程序

沙发
mingfeng07 学生认证  发表于 2014-2-21 20:16:06 |只看作者 |坛友微信交流群
欢迎扫一扫我头像关注, 不定期分享SAS技术知识。

使用道具

藤椅
细沙 发表于 2014-2-26 11:58:33 |只看作者 |坛友微信交流群
mingfeng07 发表于 2014-2-21 20:16
https://bbs.pinggu.org/thread-1564204-1-1.html
非常感谢,对truncover有了进一步的了解!

另外衍生出一个问题,用column input的时候是不是每行最后变量都必须占满指定的列数,否则会到下一行继续读取?而除每行除最后一个变量其他变量不会有这个问题,也就是不需要占满指定列数?

使用道具

板凳
mingfeng07 学生认证  发表于 2014-2-26 14:06:19 |只看作者 |坛友微信交流群
细沙 发表于 2014-2-26 11:58
非常感谢,对truncover有了进一步的了解!

另外衍生出一个问题,用column input的时候是不是每行最后变 ...
这个倒不会,变量多余列会用空格代替
欢迎扫一扫我头像关注, 不定期分享SAS技术知识。

使用道具

报纸
细沙 发表于 2014-2-26 15:38:24 |只看作者 |坛友微信交流群
mingfeng07 发表于 2014-2-26 14:06
这个倒不会,变量多余列会用空格代替
我的数据如下:
John Garcia       Maple Ave.             114
Sylvia Chung     Washington Drive 1302
Martha Newton S.E. 14th St.          45


然后程序是:
DATA TEMP;
  INFILE 'D:\codes The Little SAS Book\Address1.dat' ;
INPUT Name $ 1-13 STREET $ 15-30 NUMBER 32-35;
RUN;
PROC PRINT DATA = TEMP;
   TITLE 'ABC';
RUN;
运行下来是
                   Obs        Name              STREET        NUMBER

                      1     John Garcia          Maple Ave.          .
                      2     Martha Newton    S.E. 14th St.       .


请问这是为什么?(复制粘贴的数据列好像对的不是很齐)

使用道具

地板
mingfeng07 学生认证  发表于 2014-2-26 19:11:15 |只看作者 |坛友微信交流群
如果你的数据格式跟我下面列出的数据格式是一样的话,那么输入格式应该是这样的:
  1. data a;
  2. INPUT Name $ 1-18 STREET $ 20-36 NUMBER 36-38;
  3. cards;
  4. John Garcia        Maple Ave.       114
  5. Sylvia Chung       Washington Drive 1302
  6. Martha Newton S.E. 14th St.         45
  7. ;run;
复制代码
欢迎扫一扫我头像关注, 不定期分享SAS技术知识。

使用道具

7
细沙 发表于 2014-2-27 03:40:17 |只看作者 |坛友微信交流群
John Garcia        Maple Ave.            114
Sylvia Chung      Washington Drive   1302
Martha Newton   S.E. 14th St.          45
mingfeng07 发表于 2014-2-26 19:11

如果你的数据格式跟我下面列出的数据格式是一样的话,那么输入格式应该是这样的:
数据对齐格式是我这样的。。好像还是有问题啊。。反正第三个street是:S.E.14th ST.
你能再试着运行一下吗?谢谢

使用道具

8
mingfeng07 学生认证  发表于 2014-2-27 10:32:09 |只看作者 |坛友微信交流群
细沙 发表于 2014-2-27 03:40
数据对齐格式是我这样的。。好像还是有问题啊。。反正第三个street是:S.E.14th ST.
你能再试着运行 ...
你的数据格式没有对齐,所以像你那样的输入格式会出问题,我试过一次。如果改的话可以试试这种输入格式(前提是两个观测值之间相距两个或者两个以上的空格):
  1. data b;
  2. INPUT Name & $40.  STREET & $40. NUMBER;
  3. cards;
  4. John Garcia    Maple Ave.        114
  5. Sylvia Chung   Washington Drive  1302
  6. Martha Newton S.E.  14th St.     45
  7. ;
  8. run;
复制代码
欢迎扫一扫我头像关注, 不定期分享SAS技术知识。

使用道具

9
细沙 发表于 2014-2-27 23:41:08 |只看作者 |坛友微信交流群
mingfeng07 发表于 2014-2-27 10:32
你的数据格式没有对齐,所以像你那样的输入格式会出问题,我试过一次。如果改的话可以试试这种输入格式( ...
论坛回复的编辑下,代码老是对不上。。第三个观测的street变量对应的是S.E. 14th St.
你对应的是14th St.


你8楼的这种代码是可以出正确结果,只是我用column input那种方法,结果总是不对,一定要加TRUNCOVER..搞不明白。。

吐槽一下:一个人学软件就是蛋疼,没有人可问的。。

使用道具

10
mingfeng07 学生认证  发表于 2014-2-28 08:15:29 |只看作者 |坛友微信交流群
细沙 发表于 2014-2-27 23:41
论坛回复的编辑下,代码老是对不上。。第三个观测的street变量对应的是S.E. 14th St.
你对应的是14th St ...
好吧,我一直以为你第三个观测是14th st. ,还以为你的观测值一直没对齐呢。。。如果是对齐的话,那么可以考虑采用如下编程:
  1. data b;
  2. INPUT Name $1-14  STREET & $15-31 NUMBER 32-37;
  3. cards;
  4. John Garcia   Maple Ave.       114
  5. Sylvia Chung  Washington Drive 1302
  6. Martha Newton S.E. 14th St.    45
  7. ;
  8. run;
复制代码
这一下应该对了
欢迎扫一扫我头像关注, 不定期分享SAS技术知识。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 01:22