科研统计助手
医学科研资讯
前沿热点动态
统计分析服务
当前位置: 菁英统计工作室 > 统计知识 > 软件技巧 > SPSS应用 > 正文
SPSS中Recode、Compute、Count、If命令
作者:tjstat  更新时间:2010-08-13  来源 谎斯人的博客 本条信息浏览人次共有

在进行统计分析时,经常需要对某些数据进行重新处理,如年龄、身高、收入等,了解他们的分布或进行分析。

1、SPSS的数据变换,主要命令有四种:

2、Recode 命令:重新编码数据,重新安排数据

3、Compute命令:对原始数据进行四则运算或指数运算等,派生出新的变量

4、Count命令:创建一个新变量来计算某些变量值所出现的次数

5、If命令:如果表达式成立,则创建一个新变量

一.Recode 命令对数据重新编码

1.基本格式

   Recode V1, V2…(原值1=新值1)…(原值m=新值n)

          /X1,X2…(原值1=新值1)…(原值m=新值n).

  几个变量重新编码,如果变量值不一样,可以用反斜杠 / 隔开

  Recode命令与变量、括号之间要有空格

  在原值中使用的关键词有:

lo(Lowest)

HI(highest)

Thru

Missing

Else

Sysmis

2.举例

recode age (0 thru 20=1)(21 thru 40=2)(41 thru 60=3)(61 thru 100=4).

recode age (lo thru 20=1)( 21 thru 40=2)(41 thru 60=3)(61 thru hi=4).

recode V1 to V3(0=1)(1=0)(3=2).

recode v1,v2,v3(0=1)(1=0)(3=2).

用missing再编码缺省值(如把原定为99岁的缺省值改为00岁,则:

recode age (missing=00).

Missing关键词不能出现在右边

Recode age (00=missing).  是错误的。

Recode value age (00).  是正确的

对系统缺省值sysmis进行重新编码。系统缺省值是SPSS内部把无效的值自动打上“·”而剔除掉。

recode age (missing=sysmis).

没有关键词时的重新编码

recode age (0,20=1)(21,40=2)(41,60=3)(61,100=4).

对字符串重新编码有一些特别的要求

recode sex (’M’=’A’)( ’F’=’B’).

recode name(’wangsan’=’wan    ’).

注意:新旧字符串的长度必须相等,不足的,要用空格补齐

要用单引号把内容引起来

recode 命令放在统计过程之前

特别应该引起注意的是:如果单纯使用上述recode方法对变量进行重新编码,则会改变原始的数据录入格式,即改变原来的变量。如果需要重新编码而又不希望改变原始的数据结构,在编程时应该与compute命令一起使用。上述问题在用对话框进行重新编码时可以得到较好的解决。

第一种:对原始的数据进行重新编码,改变原来变量的数据结构

File----Open ---Data-----*·sav-----OK----Transform-------Recode into same variable

点选age到Numeric Variable―――点击Old and New Values――出现如下对话框

第二种:保持原始变量的数据结构,重新编码的数据生成新的变量

Transform------- Recode into different variable

点选age到Numeric Variable-output框――在Name框打入agenew(新变量名)----点击old and new values-----出现对话框如下

在new values中填上需要编码的值-----add-----重复----continue----点选Change框――OK-----存盘 

 也可以在SPSS的Variable view中进行

二.用Compute命令创建新变量

1.命令格式

Compute 新变量=老变量1[+ — ×÷]老变量2.

Compute 新变量=函数.

对整个数据通过函数关系进行重新排列,常用的函数有:

ABS绝对值

ARSIN反正弦函数

ARTAN反正切函数

COS余弦函数

EXP以自然数e为底的指数函数

LG10

LN 自然对数  时间的差别很大,在做模型时,往往用LN时间,效果比较好(有渐近线),周期性很强的数考虑用SIN或COS; 数据差距很大但是没有渐近线,可以考虑用平方根缩小差距.根据数据的特点和研究的目的选择运算与函数

SQRT平方根 如年龄的平方根,可以缩小年龄之间的差距

TRUNC截取某自变数的整数部分

SIN

MOD 除于10以后的余数(模数)

RND 取自变数最接近的整数部分

Compute F=MOD(196).结果是6

Compute G=RND(-4.5).结果是-5

   在进行函数运算时,如果出现下面的情况,被当作是系统缺省值处理

在幂运算中,指数不是整数;

被开方的数是负数

在EXP的指数运算中,自变数的结果太大

在LG10中,自变数为负数或0

在MOD10中,自变数为负数或0

自变数X为缺省值时,SPSS则认为是系统缺省值

日期运算函数中,自变数日期无效

任何自变数是系统缺省值时,则该个案是系统缺省值

日期函数YAMODA,可以把自变数表中所列的年月日变为天数,这种年月日顺序与中国的年月日顺序是一致的,计算天数是从1582年10月15日开始(格里历的第一天)

compute day=YAMODA(1582,10,15).

结果是day=1(天)

compute age=[YAMODA(1945,4,21)-YAMODA(1999,10,1)]/365×25.

可以从两个日期的间隔算出年龄是多少

三. COUNT命令

   在限制性多项选择中合成新的变量,生成0,1编码的变量,如农民工在北京选择住房因素列出了9项因素,询问其第一选择、第二选择与第三选择是什么。如果想把第一、二、三选择都选择了“上班方便”的人找出来,生成一个新的变量,则可以用count命令。

1.命令格式

   Count 新变量名=老变量1(数值范围) 老变量2(数值范围) 老变量n(数值范围).

#例 计算住房三个选择都选择了上班方便的人(原变量中的编码是1)

则Count  house = b8.1  (1)  b8.2  (1)  b8.3  (1)  .

计算收入在300元以下的个案

count income1=income(lo thru 300).

计算收入在1000元以上的个案

count income2=income(1000 thru hi).

显示某些变量中有系统缺失值的个案和用户缺失值的个案

count M=age, income(sysmis).

Count M1=age, income(missing).

2.在对话框中运行Count

当要计算同时满足两个变量取值条件的记录数量有多少时,直接用对话框会出现完全错误的结果,这里需要对对话框生成的程序加以修改,怎么修改?

注意:有的时候编程序可以完成对话框无法完成的工作。

如打开农民工调查数据,现在想把满足下列条件的人找出来:第一选择是选择了“上班方便”,第二选择选择的是“位置好”,第三选择选择的是“房租低”并且要看每个人符合以上三个条件中的几条。

上一篇:如何在spss中进行正态分布检验(一)
下一篇:SPSS中绘制ROC曲线

本站所发表的文章,大部分严格筛选,来源于各相关专业论坛或专业网站,内容仅供大家学习和参阅尊重原作者版权,勿用于商业用途,转载请注明来源。如有学术争议的文章,或可能与事实不符的,与本站立场无关。如有影响到您权益的文章,请及时通知本站,本站立即删除。谢谢监督。
推荐阅读
 
热门文章

Copyright 2010 Powered By 菁英统计工作室 www.tjstat.com 地址1:武汉市珞瑜路1037号 430074 ; 地址2:武汉市航空路13号 430030
邮箱:tjstat@126.com QQ: 点击这里给我发消息 点击这里给我发消息
鄂ICP备10020011号 |