楼主: 龙博士
2783 8

[问答] SAS实践中文本文件导入求助! [推广有奖]

  • 0关注
  • 1粉丝

高中生

55%

还不是VIP/贵宾

-

威望
0
论坛币
895 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
468 点
帖子
39
精华
0
在线时间
19 小时
注册时间
2014-1-13
最后登录
2016-3-4

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
DATA KH.POS;
INFILE  'e:\POS.txt';
INPUT @1 ACNO :$19. +1 JYYF :$4. +1 JYQD :$2. JYCS INT JYJE

有98万条记录的文本文件数据,准备导入SAS,原来我都是在SAS里面先建表,然后通过转换文本文件为XLS文件以后,通过IMPORT语句导入,现在记录数太大,XLS已经不支持了;
所以想用INPUT语句,可是文本文件里面有两个字段是整数型跟数值型的,不知道该如何处理,对于字符型的,因为前面已经作业做过,还是有谱的,请各位高人指教,谢谢!

7330610192000001406 201310 81 1 +0000000004000.00 46689880 201208

二维码

扫码加我 拉你入群

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

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

关键词:文本文件 infile import Input put语句 文本文件

沙发
龙博士 发表于 2014-4-25 23:34:03 |只看作者 |坛友微信交流群

DATA KH.POS;
INFILE  'e:\POS.txt';
INPUT @1 ACNO :$19. +1 JYYF :$4. +1 JYQD :$2. JYCS INT JYJE

有98万条记录的文本文件数据,准备导入SAS,原来我都是在SAS里面先建表,然后通过转换文本文件为XLS文件以后,通过IMPORT语句导入,现在记录数太大,XLS已经不支持了;
所以想用INPUT语句,可是文本文件里面有两个字段是整数型跟数值型的,不知道该如何处理,对于字符型的,因为前面已经作业做过,还是有谱的,请各位高人指教,谢谢!

7330610192000001406 201310 81 1 +0000000004000.00 46689880 201208

使用道具

藤椅
jeozu 发表于 2014-4-26 08:03:20 |只看作者 |坛友微信交流群
如果你的数据属性如下:
  1.     7330610192000001406      ACNO     char(19)
  2.     201310                        JYYF     char(6)
  3.     81                            JYQD     char(2)
  4.     1                             JYCS     int(1)
  5.     +0000000004000.00             INT      num
  6.     46689880                      JYJE     num
  7.     201208                        unnamed  num


  8.   input ACNO &19.  JYYF &6. JYQD &2. JYCS 1. INT JYJE  X;
复制代码
一直不能正确显示,,放弃了

使用道具

板凳
龙博士 发表于 2014-4-26 18:58:04 |只看作者 |坛友微信交流群
⊙﹏⊙b汗,我想用INPUT语句

使用道具

报纸
龙博士 发表于 2014-4-26 19:22:19 |只看作者 |坛友微信交流群
高手们呢,在线等!

使用道具

地板
龙博士 发表于 2014-4-26 20:59:01 |只看作者 |坛友微信交流群
DATA KH.POS;
INFILE  'e:\POS.txt';
INPUT  @1 ACNO $19. @22 JYYF $6.  @30 JYQD $2. @34 JYCS  JYJE KHRQ $6.;
RUN;
由于格式固定,前面5个字段都已经OK了,就是不知道JYJE这个数值型不知道该如何设置》最后一列是字符型

使用道具

7
龙博士 发表于 2014-4-27 21:53:32 |只看作者 |坛友微信交流群
PROC SQL;
CREATE TABLE KH.POS
( ACNO CHAR(19) ,
  JYYF CHAR(4),
  JYQD CHAR(2),
  JYCS INT,
  JYJE  DEC(15,2),
  CUNO  CHAR(8),
  CTDT  CHAR(6)
  );
QUIT;

PROC IMPORT OUT=KH.POS
                   DATAFILE= "E:\POS.TXT"
                   DBMS=TAB
                 REPLACE;
                        RUN;

DATA KH.POS;
INFILE  'e:\POS.txt';
INPUT  @1 ACNO $19. @22 JYYF $6.  @30 JYQD $2. @34 JYCS  @42 JYJE 10.2 @51 CUNO $8. @60 KHRQ $6.;
RUN;


DATA KH.POS;
INFILE  'e:\POS.txt';
INPUT   ACNO $19.  JYYF $6.   JYQD $2. JYCS  JYJE KHRQ $6.;
DLM=',';
GETNAMES=NO;

RUN;

proc import datafile='e:\POS.txt'
     out=pos
     dbms=dlm
     replace;
     delimiter=',';   /* the data file is , delimited */
     datarow=7;
run;

使用道具

8
龙博士 发表于 2014-4-27 21:55:03 |只看作者 |坛友微信交流群
PROC SQL;
CREATE TABLE KH.POS
( ACNO CHAR(19) ,
  JYYF CHAR(4),
  JYQD CHAR(2),
  JYCS INT,
  JYJE  DEC(15,2),
  CUNO  CHAR(8),
  CTDT  CHAR(6)
  );
QUIT;

PROC IMPORT DATAFILE= "E:\POS.TXT"
            OUT= KH.POS
            DBMS=','
            REPLACE;
                       
RUN;

DATA KH.POS;
INFILE  'e:\POS.txt';
INPUT  @1 ACNO $19. @22 JYYF $6.  @30 JYQD $2. @34 JYCS  @42 JYJE 10.2 @51 CUNO $8. @60 KHRQ $6.;
RUN;


DATA KH.POS;
INFILE  'e:\POS.txt';
INPUT   ACNO $19.  JYYF $6.   JYQD $2. JYCS  JYJE KHRQ $6.;
DLM=',';
GETNAMES=NO;

RUN;

proc import datafile='e:\POS.txt'
     out=pos
     dbms=dlm
     replace;
     delimiter=',';   /* the data file is , delimited */
     datarow=7;
run;

使用道具

9
龙博士 发表于 2014-4-27 21:56:05 |只看作者 |坛友微信交流群
先用SQL建表,然后用IMPORT语句,也感觉分隔符参数设置有问题,倒进去以后,成一个字段了!

使用道具

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

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

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

GMT+8, 2024-5-24 04:51