2008-01-12

forcode:SPSS多选项问题录入的一个高效率方法(组图)

forcode:刚才两个师弟过来跟我讨论问卷中多选项问题的数据录入问题,提到的一篇论文《再谈SPSS 中SUBSTR 函数与多选题答案的编码》,让我学到了一种新的录入多选项问题的办法。按照传统的方法,在spss里面,多选项问题需要将每个选项编码为0,1的虚拟变量,然后使用analyzs中的multiple response来进行统计分析,这样输入的时候如果选项较多,工作量比较大。这篇论文巧妙利用substr这个字符串函数使得多选项问题的录入大大简化,还是举个例子来说吧,比如,有一个问题有9个选项,每个人最多选3项,如果第一个人选了2、3、4这三项,第二个人选了1、3、7这三项……这种方法在录入该问题的时候,只需要产生一个变量,如果选择2、3、4这三项,就连着录入234这个字符(注意tiaojian这个变量是字符型),具体如下:
http://www.qixianglu.cn/621445.html
tiaojian
234                    
137                    
356                    
129                    
139                    
257                    
268                    
346                    
这种方法虽然能够简化数据录入,但是在具体使用的时候还得将tiaojian这个变量拆开,有多少个选项就要生成多少个0、1的虚拟变量,比如,受访对象选择了第四项,我们需要的虚拟变量tiaojian1中该值就为1,其他没有选择第四项的受访对象的该变量值就编码为0,方法如下,在transform菜单中选择compute来生成新变量,如下图所示:

进入compute窗口,target variable中输入新变量tiaojian1的名字,在numeric expression中输入这个公式:
substr(tiaojian,1,1)='4' | substr(tiaojian,2,1)='4' | substr(tiaojian,3,1)='4'
该公式包含了三个substr()函数,用|连接起来,表示只要三个substr()函数只要有一个成立就赋值为1,该函数有三个参数,具体意思如下:
函数substr(tiaojian,1,1)='4'中有三个参数,tiaojian是来源变量的名字,中间的1是表示该函数的起始位置,这里是1就表示对该字符左边第1位进行识别,第二个1表示识别的字符的长度。substr(tiaojian,1,1)='4'表示tiaojian这个字符变量的第一个字符如果为4就将tiaojian1相应的值编码为1,否则编码为0。substr(tiaojian,2,1)='4'和substr(tiaojian,3,1)='4'分别表示tiaojian这个字符变量的第二和第三个字符如果为4就将tiaojian1相应的值编码为1,否则编码为0,因为这里tiaojian这个字符型变量只有3位,因此只需要三个substr函数就可以了,具体截图如下,然后点击确定:

于是就得了新的变量tiaojian1,可以发现tiaojian变量中234和346这两个案例中都含有4,于是在tiaojian1中,这两个案例的值都是1,其他都是0,于是就得到了我们需要的虚拟变量,用类似方法可以生成所有的选项的虚拟变量,截图如下:
tiaojian                     tiaojian1
234                         1.00
137                         .00
356                         .00
129                         .00
139                         .00
257                         .00
268                         .00
346                         1.00

如果选项非常多,超过了9个出现两位数的选项怎么办?很简单,用英文小写字母来表示9以后的选项就可以了。
如果还有什么不明白的,那就看看这篇论文的原文吧,很短,只有一页,我就截图放这了:

《再谈SPSS 中SUBSTR 函数与多选题答案的编码》
暨南大学医学院卫生统计教研室(510632)  林汉生 夏苏建 杨 丽 蔡 玲

图片相册地址:
http://picasaweb.google.com/woodphone/SPSSSUBSTR




文献〔1〕着重介绍了SUBSTR 函数在多选题答案编码中的
应用。文章发表后,我们发现还有更简便的SPSS 操作可以完
成该项功能。下面结合实例进行介绍,并指出该操作与以前介
绍的不同之处。
例 受伤情况: (1) 软组织挫伤; (2) 骨折; (3) 胸腹和骨盆
内部损伤; (4) 颅脑损伤。
一、SPSS 数据工作表
将该问题设置1 个字符变量, 如type , 分别用字符变量值
1 ,2 ,3 ,4 代表4 种受伤情况。字符变量的宽度不一定和多选项
的数目一致。如调查结束后,发现调查对象中最多只会同时有
3 种损伤,则字符变量的宽度为3 。
如某人同时有软组织挫伤、骨折、颅脑损伤,则输入字符变
量值124 ;如只有软组织挫伤,则输入1 ;如没有损伤,则输入0 。
表1 中的number (调查对象编号) 和type 为数据工作表的基本
数据。
字符变量type 的变量值便于数据录入, 但不便于统计分
析。因此需要用SUBSTR 函数将字符变量type 分解为数值变
量type1 , type2 , type3 , type4 ,分别代表4 种受伤情况,用数值0
表示无,1 表示有。
表1  SPSS 数据工作表
number type type1 type2 type3 type4
1 0 0100 0100 0100 0100
2 4 0100 0100 0100 1100
3 13 1100 0100 1100 0100
4 23 0100 1100 1100 0100
5 124 1100 1100 0100 1100
  二、Compute 过程和SUBSTR 函数的使用
SUBSTR 为子串选择函数, 表达式为SUBSTR ( S t rex pre ,
pos , lenth) =′子串′。式中Strexpre 为字符变量, pos 为字符串
变量值的开始位置, length 为选取字符串变量值的长度。如从
字符变量( type) 值中选取第3 个字符为"4"的子串,则Strexpre
为type , pos 为3 , lenth 为1 (只选取1 个字符) , 即SUBSTR
( type ,3 ,1) =′4′。
当表1 中number 和type 的变量输入完毕后, 用SUBSTR
函数将字符变量type 分解为数值变量type1 , type2 , type3 ,
type4 ,可通过Compute 对话框或Syntax Editor (语句编辑) 完
成。
11Compute 对话框
从菜单选择Transform vCompute。在Compute 对话框的
Target 栏中输入type4 ,在Numeric Expression 栏中输入
SUBSTR( type , 1 , 1) =′4′| SUBSTR ( type , 2 , 1) =′4′| SUBSTR
( type ,3 ,1) = ′4′
  单击OK按钮
"| "表示"或者",也可以用or 表示。
以上操作的作用是:在字符变量type 的变量值中, 不管是
第1 ,还是第2 或者第3 个字符为4 , 返回的函数值为1 ; 如果
type 的变量值中不包含4 ,返回的函数值为0 ;返回的函数值赋
值给数值变量type4 。
重复以上操作,可以生成新变量type1 、type2 和type3 。
本文与原来介绍的主要不同之处是:免去在Compute 对话
框中使用If 过程,免去将数据工作表中的缺失值用Recode 重
新编码。
在Compute 对话框中,利用Paste 按钮,可以将上述操作过程
用SPSS 语句粘贴到Syntax Editor 窗口中,从而方便以下操作。
21Syntax Editor
在Syntax Editor 窗口,编辑并执行以下程序,也可得到表1
的结果。利用复制和粘贴功能,可减少输入时的错误。要注意
在英文状态下输入并编辑程序。
COMPUTE type1 = SUBSTR ( type , 1 , 1) = ′1′| SUBSTR
( type ,2 ,1) = ′1′| SUBSTR( type , 3 , 1) =′1′。COMPUTE type2
= SUBSTR( type , 1 , 1) =′2′| SUBSTR ( type , 2 , 1) =′2′| SUB2
STR( type ,3 ,1) = ′2′。COMPUTE type3 = SUBSTR( type ,1 ,1)
=′3′| SUBSTR ( type , 2 , 1) =′3′| SUBSTR ( type , 3 , 1) =′3′。
COMPUTE type4 = SUBSTR ( type , 1 , 1) =′4′| SUBSTR ( type ,
2 ,1) =′4′| SUBSTR( type ,3 ,1) = ′4′。
EXECUTE。
参 考 文 献
11 林汉生,杨丽,夏苏建,等. 多选题答案的编码与SPSS 中SUBSTR 函
数的使用. 中国卫生统计,2001 ,18 (6) :371 - 373.
·60 ·  中国卫生统计2005 年2 月第22 卷第1 期
--
未来新技术和新趋势的种种可能:
奇想录 http://www.qixianglu.cn
订   阅 http://feed.feedsky.com/woodphone
非主流的科幻界的非主流论坛——奇想家园:
http://www.douban.com/group/forcode/

没有评论: