我的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.
每次运行时,它都会告诉我,“注意:每行的数字无效”。它会关闭所有数据(例如日期值和诸如此类的东西)。我知道我的计算变量不起作用,因为它们依赖于未正确获取的Number数据。我很欣赏人们可以给我的方向。
答案 0 :(得分:5)
摆脱所有冒号(:) 然后在数字4之后加一个点(。)以表明它是一个信息 这应该可以解决问题。
答案 1 :(得分:1)
您需要明确告诉它要获取Number的列。否则它会尝试阅读以下日期的一部分。
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;