SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 950|回复: 6
打印 上一主题 下一主题

一个数据输入的问题,也许很菜,但很急!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2004-10-18 00:54:50 | 只看该作者

一个数据输入的问题,也许很菜,但很急!

数据如下:
52818 1992 03 05 -011 -010 -010
52818 1992 03 06 -006 -009 -011
52818 1992 03 07 -004 -007 -009
52818 1992 03 08 -006 -008 -009
52818 1992 03 09 -001 -006 -009
52818 1992 03 10 -006 -006 -008
52818 1992 03 11  006 -003 -008
52818 1992 03 12  005 -003 -006
52818 1992 03 13  018  003 -005
52818 1992 03 14  010  002 -004
52818 1992 03 15  000 -003 -005
52818 1992 03 16  010  001 -005

作为外部文件导入时最后面三列各占4个字符,负数可以正常输入,但是正数全部变成了缺失去值,因为前面有一个空格,请教各位应该如何解决呢?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2004-10-18 09:03:54 | 只看该作者

use infile statement.

你是用什么类型的外部文件导入的?可能是某些文件类型将多余的空格当成了数据列来处理而导致此问题。

你可以采取如下方式处理(经测试没有问题)。

1. 将数据直接放在SAS程序的数据块中读取,即用cards语句(或datalines语句)。

2.  将数据存入文本文件,用infile语句读入。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2004-10-18 11:33:12 | 只看该作者

RE

-004 -007 -009
-006 -008 -009
-001 -006 -009
-006 -006 -008
  006 -003 -008
  005 -003 -006
  018  003 -005
  010  002 -004
  000 -003 -005
数据是外部文件,而且很大,用cards恐怕不可行。
使用input语句输入时,后面三列数据有的是正数,有的是负数,指定数据宽度或者位置后,该如何消除输入时正数前面的空格呢?
谢谢啦!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2004-10-18 11:37:30 | 只看该作者

re

上面的数据中,正数前面是有空格的,正数前面的空格刚好与负数的负号对齐,导致能正确读入负数,而读书入正数时,因为第一个读入的字符为空格,就读成了缺失值。
郁闷……
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2004-10-18 17:23:03 | 只看该作者

Re

可以按列读入吧
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2004-10-23 10:39:25 | 只看该作者

re

可以以字符的形式读入, 就不会有正负号的问题了。

data test;
infile infl missover;
input v1 v2 v3 v4 v5 $ v6 $ v7 $;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2004-10-24 23:21:06 | 只看该作者

re

呵呵,是我笨,用列举输入模式就可以了。
不使用dsd选项,多个相连的分隔符作为一个处理。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-8 13:12 , Processed in 0.082632 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表