将缺失值重新编码为条件均值
Recoding missing values into conditional means
考虑一个包含 4 个变量的数据集 - RespondentID、Site 、年份和价格 .我想用 Price[= 的平均值替换 Price 中的缺失值53=] 表示确切的 Year 和 Site 。
例如,如果在年 2009年在巴黎平均报价格 是 22,我想替换每个缺失的 Price 值 年份=2009 和 站点=巴黎与 22.
如果我想用零替换缺失值(例如),我会创建一个语法 RECODE Price (SYSMIS=0) (ELSE=COPY)
,但我不知道如何实现这个有条件的意思。
我也知道可以使用 temporary. select if Year=2009 and Site=Paris. compute NewVar=mean(Price)
找到每个条件均值。但是Site和Year[=53=的组合太多了] 在我的数据集中手动完成。
顺便说一句,实际数据集中的所有变量都是数字(我不知道重要与否)。
知道如何在 SPSS 或其他统计软件中执行此操作吗?
查看 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.
AGGREGATE /OUT=* MODE=ADD /BREAK=Site Year /Price_mean=MEAN(Price).
if missing(price) price=Price_mean.
execute.
考虑一个包含 4 个变量的数据集 - RespondentID、Site 、年份和价格 .我想用 Price[= 的平均值替换 Price 中的缺失值53=] 表示确切的 Year 和 Site 。
例如,如果在年 2009年在巴黎平均报价格 是 22,我想替换每个缺失的 Price 值 年份=2009 和 站点=巴黎与 22.
如果我想用零替换缺失值(例如),我会创建一个语法 RECODE Price (SYSMIS=0) (ELSE=COPY)
,但我不知道如何实现这个有条件的意思。
我也知道可以使用 temporary. select if Year=2009 and Site=Paris. compute NewVar=mean(Price)
找到每个条件均值。但是Site和Year[=53=的组合太多了] 在我的数据集中手动完成。
顺便说一句,实际数据集中的所有变量都是数字(我不知道重要与否)。
知道如何在 SPSS 或其他统计软件中执行此操作吗?
查看 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.
AGGREGATE /OUT=* MODE=ADD /BREAK=Site Year /Price_mean=MEAN(Price).
if missing(price) price=Price_mean.
execute.