Изо всех сил пытаясь прочитать этот набор данных TXT в SAS - PullRequest
0 голосов
/ 18 февраля 2019

Это набор данных.Мне нужна переменная для 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;

Япытается настроить набор данных для этого хранилища.

Ответы [ 3 ]

0 голосов
/ 18 февраля 2019

Предполагая, что все строки имеют значения для первых трех переменных, вы можете просто прочитать их, используя ввод в режиме списка.Затем прочитайте остаток строки как адрес.

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 голосов
/ 18 февраля 2019

Том и DCR оба правы.Я предпочитаю более простой маршрут, используя Proc import .

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

Что он делает, это делает предположение на основе прочитанного файла и автоматически создает оператор infile.(Я просто копирую его из журнала и делаю корректировки, если что-то читается неправильно.)

Если вы знаете структуру данных, следуйте другим ответам, но это более удобный для начинающих подход.(imho) Подробнее см. документация

0 голосов
/ 18 февраля 2019
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;
...