【问题标题】:SAS query - potential issue with spacingSAS 查询 - 间距的潜在问题
【发布时间】:2022-08-12 00:12:11
【问题描述】:

我正在学习 SAS,但我不明白我的代码有什么问题。没有错误消息,但是当我查看结果时,它切断了第四个人,并且数字错误。

代码:

data sales;
input Name$ Sales_1-Sales_4;
Total=SUM(Sales_1-Sales_4);
DATALINES;
Greg 10 2 40 9
John 15 5 10 100
Lisa 50 10 15 50
Mark 20 9 5 20
;
RUN;
  • 结果如下所示: Greg 10 2 40 9 1 John 15 5 10 100 -85 Lisa 。 15 50 。 .

标签: sas


【解决方案1】:

您只给 SUM() 函数一个值求和,即 SALES_1 和 SALES_4 之间的差值。

如果您希望 SAS 在这种情况下将 SALES_1-SALES_4 视为变量列表而不是减法运算,则需要包含 OF 关键字。

Total=SUM(of Sales_1-Sales_4);

您不需要在 INPUT 语句之类的地方使用 OF 关键字,因为减法对于该语句中的连字符来说不是可能的含义。

注意:我认为过去会产生错误,因为仅使用一个变量调用 SUM() 函数是没有意义的,因为在这种情况下实际上没有什么可以求和。但是当前的 SAS 版本允许您仅使用一个参数调用 SUM() 函数,因此您的代码在语法上是正确的,只是逻辑上是错误的。

【讨论】:

  • 无法在评论中说明您所说的名称被截断是什么意思。所以你的意思是最后一个观察没有创建?确保数据以只有分号的行结束。不需要 RUN: 语句,因为数据步的代码在数据行开始时结束。
猜你喜欢
  • 2021-12-21
  • 1970-01-01
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多