SAS 9.3 Неверные данные для переменной
У меня проблема с моей программой в SAS, работающей правильно. Что-то не так с тем, как я получаю данные из моего файла, и это все портит внутри. Вот часть моего кода испортилась:
data Stocks;
infile 'location of file.txt';
input @1 Stock : $4.
@5 PurDate : mmddyy10.
@15 PurPrice : dollar6.1
@21 Number : 4
@25 SellDate : mmddyy10.
@35 SellPrice : dollar6.1;
TotalPur = Number * PurPrice;
TotalSell = Number * SellPrice;
Profit = TotalSell - TotalPur;
run;
proc print data=Stocks;
var Stock PurDate PurPrice Number SellDate SellPrice TotalPur TotalSell Profit;
run;
И вот данные, с которыми я работаю:
IBM 5/21/2006 $80.0 10007/20/2006 $88.5
CSCO04/05/2005 $17.5 20009/21/2005 $23.6
MOT 03/01/2004 $14.7 50010/10/2006 $19.9
XMSR04/15/2006 $28.4 20004/15/2006 $12.7
BBY 02/15/2005 $45.2 10009/09/2006 $56.8
Описание данных выглядит следующим образом:
Stock --> Starting Column: 1, Length: 4, Type: Char.
PurDate --> Starting Column: 5, Length: 10, Type: mm/dd/yyyy.
PurPrice --> Starting Column: 15, Length: 6, Type: Dollar Signs and Commas.
Number --> Starting Column: 21, Length: 4, Type: Num.
SellDate --> Starting Column: 25, Length: 10, Type: mm/dd/yyyy.
SellPrice --> Starting Column: 35, Length: 6, Type: Dollar Signs and Commas.
Каждый раз, когда я запускаю его, он говорит мне "ПРИМЕЧАНИЕ: неверные данные для номера" для каждой строки. Это отключает все мои данные (такие как значения даты и еще много чего). Я понимаю, что мои вычисленные переменные не будут работать, потому что они зависят от числовых данных, которые не собираются должным образом. Я был бы признателен за любое направление, которое люди могут дать мне.
2 ответа
Избавьтесь от всех двоеточий (:).
Затем добавьте точку ( .) После 4 числа, чтобы прояснить, что это информат.
Это должно делать свое дело.
Вы должны четко указать, какие столбцы получить номер. В противном случае он пытается прочитать часть следующей даты.
data Stocks;
infile x;
input @1 Stock : $4.
@5 PurDate : mmddyy10.
@16 PurPrice : dollar6.1
@22 Number 22-24
@25 SellDate : mmddyy10.
@36 SellPrice : dollar6.1;
format PurDate SellDate date9.;
TotalPur = Number * PurPrice;
TotalSell = Number * SellPrice;
Profit = TotalSell - TotalPur;
run;