我有一张包含过去两年信息的几个组织预算的表格,我需要为今年的信息添加列。因此,基本上,我有一个表格,其中包含以下列:第 1 年预算/第 2 年预算/第 2 年更改($)/第 2 年更改(%)/第 3 年预算/第 3 年更改($)/第 3 年更改(%)。
data test;
input Y1 Y2 y2changedollar y2changeperc y3 y3changedollar y3changeperc;
datalines;
3700925 4940398 1239473 0.335 8687418 3747020 0.758
700930 686911 -14019 -0.020 672175 -14736 -0.021
2135970 2134584 -1386 -0.001 2162260 27676 0.013
2373620 2326148 -47472 -0.020 2245862 -80286 -0.035
555373 557830 2457 0.004 548386 -9444 -0.017
;
run;
我需要生成一个包含此信息的报告,以及底部汇总每一列的汇总行。前一年的文档使用 proc report 中的 summarise 命令来执行此操作,但我认为这样做有问题。
PROC REPORT data=test;
COLUMN y1 y2 y2changedollar y2changeperc y3 y3changedollar y3changeperc;
DEFINE y1 / ANALYSIS FORMAT=DOLLAR15.;
DEFINE y2 / ANALYSIS FORMAT=DOLLAR15.;
DEFINE y2changedollar / ANALYSIS '$ Change' FORMAT=DOLLAR15.;
/*DEFINE y2changeperc / analysis '% Change' FORMAT=pctc.;*/
DEFINE y3 / ANALYSIS FORMAT=DOLLAR15.;
DEFINE y3changedollar / ANALYSIS '$ Change' FORMAT=DOLLAR15.;
/*DEFINE y3changeperc / analysis '% Change' FORMAT=pctc.;*/
RBREAK AFTER / SUMMARIZE STYLE=[background=grey font_weight=bold font_style=italic];
;
RUN;
这给了我这样的东西:
| Y1 | Y2 | $更改 | % 变化 | Y3 | $ 更改 | % 变化 |
| 9,466,818 美元 | 10,645,871 美元 | 1,179,053 美元 | 0.298 | 14,316,101 美元 | 3,670,230 美元 | 0.698 |
| 9,466,818 美元 | 10,645,871 美元 | 1,179,053 美元 | 0.298 | 14,316,101 美元 | 3,670,230 美元 | 0.698 |
底线以指定方式风格化(灰色背景、粗体、斜体)。
所以我遇到的问题是:
为什么实际数据也没有打印在表格中?(可能是一个非常简单和愚蠢的错误,但 SAS 不是我的首选软件,所以我不知道我错过了什么。)
百分比变化似乎不准确。我将百分比变化计算为 (Y2-Y1)/Y1,因此对于总百分比变化,我需要使用其他列的总和 - (TY2 - TY1)/TY1(对吗?)。如果我的数学是正确的,那么百分比变化应该是 0.124,而不是 0.298。
1179053 / 9466818 = 0.1245(1-2 年变化)
3670230 / 10645871 = 0.3447(第 2-3 年变化)
我知道表中的数字是通过添加列得到的,与其他列相同。有没有办法停止/改变它以使数学正确?
如果我在报告中将两个百分比变化列格式化为百分比(注释掉的行),而不是得到两个总百分比的 0.298 和 0.698,我分别得到 0 和 1。有谁知道那里发生了什么?在我正在使用的实际数据集中,我得到的值既不是百分比列的总和,也不是总百分比变化的计算,我不知道是什么数学导致了这个数字。
如果有人对这些问题有任何见解,我将不胜感激。谢谢!