考虑包含4个变量的数据集 - RespondentID , 网站 , 年< / em> , 价格 。我希望将 价格 中的缺失值替换为 价格 的确切 年 和 网站 。
例如,如果在巴黎的 年 2009中意味着报告 价格 为22,我想要更换每个缺少 价格 的值 年 = 2009和 网站 < / strong> =巴黎22岁。
如果我想用零(例如)替换缺失值,我会创建一个语法RECODE Price (SYSMIS=0) (ELSE=COPY)
,但我不知道如何实现这个条件均值。
我也知道可以使用temporary. select if Year=2009 and Site=Paris. compute NewVar=mean(Price)
找到每个条件均值。但是,我的数据集中有太多 网站 和 年 的组合,无法手动执行此操作。
顺便说一下,实际数据集中的所有变量都是数字的(我不知道它是否重要)。
知道如何在SPSS或其他一些统计软件中做到这一点吗?
答案 0 :(得分:2)
AGGREGATE /OUTFILE=* MODE=ADDVARIABLES /BREAK=Site Year /Price_mean=MEAN(Price).
if missing(price) price=Price_mean.
execute.
答案 1 :(得分:1)
查看AGGREGATE和MATCH命令(或带有SPLIT FILE的RMV)。 编辑: 添加了示例。
DATASET NAME rawdata.
SORT CASES BY Year Site.
DATASET DECLARE agg.
AGGREGATE OUTFILE agg / BREAK Year Site / Mean_Price=MEAN(Price).
MATCH FILES FILE =rawdata / TABLE agg / BY Year Site .
IF MISSING(Price) Price=Mean_Price.
*ALTERNATIVELY.
DATASET NAME rawdata.
SORT CASES BY Year Site.
SPLIT FILE BY Year SITE.
RMV /Mean_Price=SMEAN(Price).
IF MISSING(Price) Price=Mean_Price.
SPLIT FILE OFF.