
SPSS中Recode、Compute、Count、If命令
在进行统计分析时,经常需要对某些数据进行重新处理,如年龄、身高、收入等,了解他们的分布或进行分析。
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
当要计算同时满足两个变量取值条件的记录数量有多少时,直接用对话框会出现完全错误的结果,这里需要对对话框生成的程序加以修改,怎么修改?
注意:有的时候编程序可以完成对话框无法完成的工作。
如打开农民工调查数据,现在想把满足下列条件的人找出来:第一选择是选择了“上班方便”,第二选择选择的是“位置好”,第三选择选择的是“房租低”并且要看每个人符合以上三个条件中的几条。
先用对话框做一下,然后paste一下对话框会生成什么样的程序,我们可以看到对话框生成的程序是:
COUNT
house = b8.1 b8.2 b8.3 (1) b8.1 b8.2 b8.3 (2) b8.1 b8.2 b8.3 (3) .
EXECUTE .
这个语句显然不符合我们的要求,因为我们要求”1”只对第一选择进行限制,而不对第二选择和第三选择进行限制。
所以,需要修改程序:COUNT
COUNT
house = b8.1 (1) b8.2 (2) b8.3 (3) .
EXECUTE .
四·用If命令做条件变换和逻辑校
1.命令格式
[1]IF命令格式1
IF(表达式成立) 新变量=新表达式
[2]IF命令格式2
IF(表达式成立) 新变量=数值
表达式中的关系符一般有6种
EQ(=) LE(<=) GT(>)
LT(<) GE(>=) NE(<>)
IF命令一定要用compute命令引导
[3]举例
compute taxes=0.
If(income GE800) taxes=income×0.2.
月收入大于等于800,纳税20%
逻辑表达式中可以用AND (&); OR(I);NOT(~)三种。
IF (age GE18 AND sex NE 1) Group=1.
If (NOT Race=1 AND sex NE 0) Group=1.
当Race不等于1,同时 sex不等于0时,则归入第一组
在IF命令中,如果有一个变量有缺省值,无法确定整个表达式的真假时,命令不执行,这个时候SPSS将依然保留新变量原有数值不变
原来有缺省值的,依然为缺省值。
五.对变量进行分组(Categorize Variables)
对变量进行分组指的是把连续型数值型资料转变为具体的分类数据,进行转换时是按照百分位数进行分组,这样可以使每个组都有大概相等的观察值。如把一个变量分为4个组,则第一组在25%百分位数下,第二组在25-50%,第三组在50-75%,第四组大于75%,组数可以自己决定
六.变量值秩次确定
Transform----Rank Cases----
Variable框:放你需要进行排序的变量,
By框:放用以确定分组排序的依据―――
Assign rank 1 to-----指用来制定秩次排列方式: Smallest value 表示最小值用1标注, Largest value表示最大值用1标注
Rank Type―――可以选择的排序类型,主要有:
Rank:普通秩次,系统默认方式,
Savage score :以指数分布为基础的原始分为秩次
Fractional rank:以分组例数之和占总例数的累积百分比为秩次
Fractional rank as% :以累积百分比分数为秩次
Sum of case weights:以分组例数的权重为秩次
Ntiles:先给定一个大于1的整数,系统按照这个数值开始确定排序的秩次
Proportion estimated:比例估计,是以一个特别秩次对应分布的累积比的估计
Normal score:正态分数
Ties:当选择的变量具有相同值时,秩次的确定原则:
Mean:给点秩取平均值,此为系统默认方式
Low:给点秩取最小值
High:给点秩取最大值
Sequential ranks to unique values:给点秩取第一个出现的秩次值,其它观察量秩次顺序排列
七.自动对变量重新赋值 Automatic Recode
Automatic Recode对话框:把要重新赋值的变量放到Variable框,在New name 框内对新变量进行变量名的确定, 赋值方式:从lowest value开始, 从largest value开始。生成的新变量实际上是对老变量根据从大到小或从小到大的原则对其进行了赋值。如某个值在老变量中排第五,则在重新赋值时赋予5这个值。
八.缺失值的替代 Replace Missing Values
当变量有缺失值时,可以进行科学替代, 点击Transform 菜单中的 Replace Missing Values对话框,把有缺失值的变量放到New variables对话框中, 系统会自动产生用于替代缺失值的新变量名,默认变量名为原来变量名后加-1,我们也可以在Name框内自己定义替代缺失值的新变量名,然后点击 Method 箭头,选择缺失值的替代方式,共有5种方式
1. Series mean: 用这个变量的所有非缺失值的均数作替代
2. Mean of nearby points:用缺失值相邻点的非缺失值的均数做替代,取多少个相邻点可以由Span of near by points选择项来确定
3. Median of nearby points:用缺失值相邻点的非缺失值的中位数做替代,取多少个相邻点可以Span of near by points选择项来确定
4. Linear interpolation:用缺失值相邻两点非缺失值做线性内插法替代
5. Linear tread at point:用拟合的直线方程估计缺失值。
想快速入门Python数据分析?这门课程适合你!
如果你对Python数据分析感兴趣,但不知从何入手,推荐你学习《山有木兮:Python数据分析极简入门》。这门课程专为初学者设计,内容简洁易懂,手把手教你掌握Python数据分析的核心技能,助你轻松迈出数据分析的第一步。
学习入口:https://edu.cda.cn/goods/show/3429?targetId=5724&preview=0
开启你的Python数据分析之旅,从入门到精通,只需一步!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数据库日常操作中,INSERT INTO SELECT是实现 “批量数据迁移” 的核心 SQL 语句 —— 它能直接将一个表(或查询结果集)的数 ...
2025-10-16在机器学习建模中,“参数” 是决定模型效果的关键变量 —— 无论是线性回归的系数、随机森林的树深度,还是神经网络的权重,这 ...
2025-10-16在数字化浪潮中,“数据” 已从 “辅助决策的工具” 升级为 “驱动业务的核心资产”—— 电商平台靠用户行为数据优化推荐算法, ...
2025-10-16在大模型从实验室走向生产环境的过程中,“稳定性” 是决定其能否实用的关键 —— 一个在单轮测试中表现优异的模型,若在高并发 ...
2025-10-15在机器学习入门领域,“鸢尾花数据集(Iris Dataset)” 是理解 “特征值” 与 “目标值” 的最佳案例 —— 它结构清晰、维度适 ...
2025-10-15在数据驱动的业务场景中,零散的指标(如 “GMV”“复购率”)就像 “散落的零件”,无法支撑系统性决策;而科学的指标体系,则 ...
2025-10-15在神经网络模型设计中,“隐藏层层数” 是决定模型能力与效率的核心参数之一 —— 层数过少,模型可能 “欠拟合”(无法捕捉数据 ...
2025-10-14在数字化浪潮中,数据分析师已成为企业 “从数据中挖掘价值” 的核心角色 —— 他们既要能从海量数据中提取有效信息,又要能将分 ...
2025-10-14在企业数据驱动的实践中,“指标混乱” 是最常见的痛点:运营部门说 “复购率 15%”,产品部门说 “复购率 8%”,实则是两者对 ...
2025-10-14在手游行业,“次日留存率” 是衡量一款游戏生死的 “第一道关卡”—— 它不仅反映了玩家对游戏的初始接受度,更直接决定了后续 ...
2025-10-13分库分表,为何而生? 在信息技术发展的早期阶段,数据量相对较小,业务逻辑也较为简单,单库单表的数据库架构就能够满足大多数 ...
2025-10-13在企业数字化转型过程中,“数据孤岛” 是普遍面临的痛点:用户数据散落在 APP 日志、注册系统、客服记录中,订单数据分散在交易 ...
2025-10-13在数字化时代,用户的每一次行为 —— 从电商平台的 “浏览→加购→购买”,到视频 APP 的 “打开→搜索→观看→收藏”,再到银 ...
2025-10-11在机器学习建模流程中,“特征重要性分析” 是连接 “数据” 与 “业务” 的关键桥梁 —— 它不仅能帮我们筛选冗余特征、提升模 ...
2025-10-11在企业的数据体系中,未经分类的数据如同 “杂乱无章的仓库”—— 用户行为日志、订单记录、商品信息混杂存储,CDA(Certified D ...
2025-10-11在 SQL Server 数据库操作中,“数据类型转换” 是高频需求 —— 无论是将字符串格式的日期转为datetime用于筛选,还是将数值转 ...
2025-10-10在科研攻关、工业优化、产品开发中,正交试验(Orthogonal Experiment)因 “用少量试验覆盖多因素多水平组合” 的高效性,成为 ...
2025-10-10在企业数据量从 “GB 级” 迈向 “PB 级” 的过程中,“数据混乱” 的痛点逐渐从 “隐性问题” 变为 “显性瓶颈”:各部门数据口 ...
2025-10-10在深度学习中,“模型如何从错误中学习” 是最关键的问题 —— 而损失函数与反向传播正是回答这一问题的核心技术:损失函数负责 ...
2025-10-09本文将从 “检验本质” 切入,拆解两种方法的核心适用条件、场景边界与实战选择逻辑,结合医学、工业、教育领域的案例,让你明确 ...
2025-10-09