计算一堆数据以显示在堆积条上

Calculate a bunch of data to display on stacked bar

我正在努力创建我的第一个图表。

我有一个来自调查的有序缩放数据的数据集。 我有几个问题,可能的答案是 1 - 5。 因此,我想收集来自不同人的大约 110 个答案,并在堆叠栏中显示。 这些数据看起来像:

| taste | region | brand | price |
|   1   |    3   |   4   |   2   |
|   1   |    1   |   5   |   1   |
|   1   |    3   |   4   |   3   |
|   2   |    2   |   5   |   1   |
|   1   |    1   |   4   |   5   |
|   5   |    3   |   5   |   2   |
|   1   |    5   |   5   |   2   |
|   2   |    4   |   1   |   3   |
|   1   |    3   |   5   |   4   |
|   1   |    4   |   4   |   5   |
...

为了可以在堆叠条形图中显示,我需要对其求和。 所以我知道最后需要这样计算:

|       | taste  | region | brand  | price  |
|   1   |   60   |   20   |   32   |   12   |
|   2   |    23  |   32   |   54   |   22   |
|   3   |    24  |   66   |   36   |   65   |
|   4   |    55  |   68   |   28   |   54   |
|   5   |    10  |   10   |   12   |   22   |

(这只是演示,值不正确)

或者不知何故在 spss 上已经有一个函数,但我现在知道在哪里以及如何做。

有什么建议吗?

我想不出一个命令,但有很多方法可以到达你想要的地方。这是一个:

首先重新创建您的样本数据:

data list list/ taste region brand price .
begin data
 1 3 4 2 
 1 1 5 1 
 1 3 4 3 
 2 2 5 1 
 1 1 4 5 
 5 3 5 2 
 1 5 5 2 
 2 4 1 3 
 1 3 5 4 
 1 4 4 5 
end data.

现在计算每一行的值:

vector t(5) r(5) b(5) p(5).
* the vector command is only nescessary so the new variables will be ordered compfortably for the following parts.
do repeat vl= 1 to 5/t=t1 to t5/r=r1 to r5/b=b1 to b5/p=p1 to p5.
  compute t=(taste=vl).
  compute r=(region=vl).
  compute b=(brand=vl).
  compute p=(price=vl).
end repeat.

现在我们可以聚合和重组以达到您指定的确切数据结构:

aggregate /outfile=* /break= /t1 to t5 r1 to r5 b1 to b5 p1 to p5 = sum(t1 to p5).
varstocases /make taste from t1 to t5 /make region from r1 to r5 
            /make brand from b1 to b5/ make price from p1 to p5/index=val(taste).
compute val = char.substr(val,2,1).
alter type val(f1).