【发布时间】:2014-09-23 03:49:52
【问题描述】:
我有以下数据集:
客户 ID NGIF RAMN RFA1
2001 6 52 1
2002 1 23 1
2003 8 99 1
2004 20 100 4
2005 11 114 3
2006 9 138 1
2007 7 105 3
2008 15 190 2
2009 27 297 1
2010 22 207 1
2011 19 171 2
我想使用数组计算每个 RFA1 级别(即 1-4)的平均值(RFA1 级别的总 RAMN/该 RFA1 级别的总数)。如果没有数组,如果我拆分并执行,我会得到单个级别的结果。以下是代码:
enter code here
data averagetotalcatlog (drop=CustomerID NGIF RAMN);
set Catlog;
by RFA1;
where RFA1 = 1;
if First.RFA1 then TotalRAMN = 0 & TotalCust = 0 & Average = 0;
TotalCust + 1;
TotalRAMN + RAMN;
if Last.RFA1;
Average = TotalRAMN / TotalCust;
run;
我的问题是如何使用数组为 RFA1 的所有 4 个级别编写此代码??
【问题讨论】:
-
你觉得那些
&在做什么?可能不是他们实际在做什么。 -
进一步,为什么要对数组执行此操作?
PROC MEANS很乐意为您完成这项工作。 -
感谢乔的回复。我已经用 PROC MEANS 试过了,是的,他们正在做需要做的事情。但是我正在学习 SAS 并且对它更新鲜,并且也想学习数组。因此,我正在尝试使用数组来解决它。我认为使用 '&' 我会根据 if 条件在一句话中初始化三个变量。请原谅我的无知,让我知道我哪里出错了。
-
&不能那样工作。我建议学习 SAS 入门课程来学习如何做这样的事情;在你学习基本的东西之前,你已经跳得太远了。 -
@Joe:感谢您对 & 的建议,它帮助我找到了解决方案。
标签: sas