我正在介绍SAS课程,并且在读取一些数据方面遇到了严重问题。
这是我到目前为止的代码(赋值告诉我们使用Column输入)如下:
DATA shirtCol;
INPUT Name $ 1-6 Color $ 8-13 Price 15-19 ShippingCost 21-24;
DATALINES;
Large Red 18.97 0.25
Medium Blue 24.68 1.10
XLarge Black 29.99 1.75
Small Orange 15.89 0.50
;
RUN;
PROC print data=shirtCol;
RUN;
我正在使用SAS大学版来运行此代码,当我运行程序时,Price和Shipping列只在小数点后面有一个数字。有什么我做错了吗?如何使程序不再截断我的输出?
答案 0 :(得分:0)
似乎SAS工作室将空白空间计为列。尝试在输入前删除前导空格:
DATA shirtCol;
INPUT Name $ 1-6 Color $ 8-13 Price 15-19 ShippingCost 21-24;
DATALINES;
Large Red 18.97 0.25
Medium Blue 24.68 1.10
XLarge Black 29.99 1.75
Small Orange 15.89 0.50
;
RUN;
答案 1 :(得分:0)
计算数据行中的字符数,以查看为什么它没有读取您想要的内容。要么更正INPUT
语句中的列号,要么删除您似乎添加到每行的额外空格。插入标尺线可以提供帮助。
DATA shirtCol;
INPUT Name $ 1-6 Color $ 8-13 Price 15-19 ShippingCost 21-24;
*---+---10----+---20----+---30;
DATALINES;
Large Red 18.97 0.25
Medium Blue 24.68 1.10
XLarge Black 29.99 1.75
Small Orange 15.89 0.50
;
RUN;
使用一致的缩进样式可以避免此类问题。我从未缩进DATALINES;
声明。实际上我从不使用DATALINES;
语句,但我从不缩进CARDS;
语句并且我经常使用它们。 :)
如果这不起作用,请确保您没有引入标签来替换数据中的空格。我认为SAS / Studio可能无法将选项卡实际存储在它发送给SAS执行的代码行中。您可以使用EXPANDTABS选项添加INFILE语句,以使SAS将选项卡扩展为空格。当你在它时,你可能还想添加TRUNCOVER选项。
infile datalines expandtabs truncover ;