4. SPSS+Excel联用生成频数表

本文的视频操作地址

首先,在excel2013版本可以直接使用excel选项>加载项>管理(A):excel加载项 点转到按钮。


4. SPSS+Excel联用生成频数表_第1张图片
点击管理 excel加载项右侧的转到

把分析工具加载进来


4. SPSS+Excel联用生成频数表_第2张图片
捕获.JPG

之后就可以在数据>数据分析这里点开分析工具
捕获.JPG

这里面有直方图工具,我觉得比spss的工具好用很多。但是考虑到早先的excel版本不一定有这个功能。所以这里讲一下怎么使用spss和excel联用生成频数表以及直方图


正文开始

excel部分

数据我是使用=norm.inv(rand(),10,2)随机生成的,数据表大概长成这样:

4. SPSS+Excel联用生成频数表_第3张图片
数据表名称是:频数表数据

编码的步骤主要是以下几步

  1. 求最大值(记为max)=max(频数表数据[x])和最小值(记为min)=min(频数表数据[x])
  2. 求极差(记为range)使用最大值减最小值
  3. 求组数(记为bins)和组距(记为size),常规是使用极差开平方然后向上取整。不过当极差过小的时候,或许组数直接取10会更合适一些。相应的,组数求好了以后,组距就是极差除以组数向上取整,=roundup(range/bins)
  4. 写出变量编码表。变量编码表主要有3列,第一列是组最小值(记为x),第二列为编码,记为code,第三列为标签,记为label。接下来主要讲一下这三列如何生成

编码表的制作

编码表最好不要和数据放在同一个工作表里面,免得到spss处理的时候给自己添加麻烦。

第一列

第一列组最小值比较容易,首先第一行是变量x的最小值(min),之后下面每一行都是上一行的数值加上组距(size)。这里需要注意的是公式的填充会造成坐标偏移,所以组距的坐标需要转成绝对位置。这里假设min的数据在E3,size的数据在E6,则频数表第一列的前两行分别是=E3=E3+$E$6,之后把第二行的公式往下填充。
至于填充多少呢,编码表的行数应该是组数bins+1,当然你也可以往下直接拖动,然后看到某个格子比最大值还大就可以到此为止了。

第二列 编码以及回写

这一步就没什么了,可以直接按照序列给第二列各个格子按照1,2,3...编码。主要是怎么把这些编码回写到数据表,让一个数据对应一个编码。
这里就要依靠vlookup公式了。vlookup的默认模式就是模糊查找。关于模糊查找之前有一篇文章做了比较多的讲解,这里不多作重复。这里使用的公式如下图所示:

4. SPSS+Excel联用生成频数表_第4张图片
使用公式

第三列 标签(label)

label这一列是等一下交给spss去给变量值添加标签用的,这里使用excel的文本合成公式,以第三列第一行为例:="'"&[@x]&"~"&H4&"'"

4. SPSS+Excel联用生成频数表_第5张图片
单元格引用情况

这是为了生成类似'5.926.92'这样的两边有单引号,前后分别是当前组的最小值和最大值的数值标签。其中5.92和6.92是不断变化的,所以分别使用[@x]和相对当前单元格的坐标H4引用这两个值。而像单引号,这些符号就通过"'"(两个双引号括住一个单引号),""来加入到公式里。至于变量和不同的字符之间就通过&符号连接

SPSS部分。

现在excel部分的工作已经完成了。接下来要在spss里面打开我们的数据。在这之前最好保证当前工作表里只有数据,没有编码表。

接下来用spss打开刚才的excel表(记得在打开数据的时候文件类型选择excel表):

4. SPSS+Excel联用生成频数表_第6张图片
选择数据所在的工作表sheet1

之后可以看到数据已经都在了,从变量视图可以看到,编码这里现在还没有标签,如果现在做频数表(分析>描述统计>频率)得到的是下表:

4. SPSS+Excel联用生成频数表_第7张图片
不完美的频数表

这些个123是什么东西呢?所以还是做一下数值编码才方便后续分析。但是spss的数值编码非常的蠢,只能一个按钮一个按钮的点击输入。对于蠢人来说确实是这样的。实际上spss是支持命令输入的。

使用spss命令(syntax)

依次点击文件>新建>语法(file>new>syntax),之后可以看到这个界面

4. SPSS+Excel联用生成频数表_第8张图片
捕获.JPG

右下方区域输入命令,然后全选,点击工具栏上的绿色三角箭头运行就可以运行命令了。关于value labels命令这里做一下说明,一般这个命令的形式是这样的:

VALUE LABELS
变量名称
变量值1 '标签1'
变量值2 '标签2'
...
变量值n '标签n'

EXECUTE

所以具体到我们这个例子,命令就是

VALUE LABELS
编码
1 '4.43~6.43'
2 '6.43~8.43'
...

EXECUTE

而中间这些内容可以直接复制粘贴实现:


4. SPSS+Excel联用生成频数表_第9张图片
从Excel复制频数表的第二第三列,粘贴进命令窗口

全选,点运行(绿色三角),接下来再生成频数表就像下表所示了:

4. SPSS+Excel联用生成频数表_第10张图片
完善后的频数表

你可能感兴趣的:(4. SPSS+Excel联用生成频数表)