努力尝试将此txt数据集读入SAS

问题描述 投票:0回答:3

那是数据集。我需要ShipID,Received,Shipped,City,Zip Code的变量。我该怎么做呢?

这是我的第一个统计编程语言课程,我正在努力。我的教授也没有多少帮助。

ShipID  Received   Shipped   Address .   
 X8742 2018/03/14 2018/03/17 Little River, KS, 67457

还有更多的线路,我已经迷失了一个小时。

infile "/home/rossfosher0/SAS Homework/SAS Sessions/WarehouseA.txt" firstobs = 2;    
input  @2-7 ShipID $ @9-18 Received: YYYYMMDD8.  @20-28 Shipped: YYYYMMDD8. @City $;    
run;

我正在尝试为此仓库设置数据集。

sas
3个回答
0
投票
data mydata;   
   input @1 shipid $  @7 received yymmdd10. @18 shipped yymmdd10.  @28 address $30.;   
   format received yymmdd10. shipped yymmdd10.;
datalines;
X8742 2018/03/14 2018/03/17 blue ridge, MA 02391
;
run;

0
投票

假设所有行都有前三个变量的值,您可以使用列表模式输入读取它们。然后读取该行的其余部分作为地址。

data want;
  infile "..." firstobs=2 truncover;
  input shipid $ received shipped address $50. ;
  informat received shipped yymmdd.;
  format received shipped yymmdd10.;
run;

如果数据确实在固定列中,那么您可以在INPUT语句中使用列位置,但这与使用信息不兼容。因此要么使用两个日期字段的格式化输入,要么将它们作为字符串读取。

input shipid $1-7 @8 Received yymmdd10. @19 Shipped yymmdd10. Address $ 30-79 ;
format Received Shipped yymmdd10.;

0
投票

Tom和DCR都是对的。我更喜欢使用Proc导入更简单的路线。

 proc import datafile='c:\personal\My_file.csv' 
    out=SAS_data replace;
    DELIMITER=";" ;
    getnames=yes;
    guessingrows= 32767;
 run;

它的作用是根据读取的文件进行猜测并自动创建infile语句。 (我只是从日志中复制它,并在读取错误的内容时进行调整。)

如果您知道数据的结构遵循其他答案,但这是更适合初学者的方法。 (imho)欲了解更多,请参阅documentation

© www.soinside.com 2019 - 2024. All rights reserved.