【发布时间】:2015-12-11 11:32:06
【问题描述】:
需要删除没有数据的spss变量(sysmis数据)
指令 IF(SYSMIS(V1)) DELETE VARIABLES V1.不工作。
【问题讨论】:
需要删除没有数据的spss变量(sysmis数据)
指令 IF(SYSMIS(V1)) DELETE VARIABLES V1.不工作。
【问题讨论】:
IF 命令不能以您正在尝试的这种方式工作。它根据具体情况进行操作,即 IF 一个案例符合某个标准 THEN 将某个转换应用于 THAT CASE ONLY(不是变量作为一个整体)。
如果您不需要动态搜索空变量(这可以使用 python - 见下文),那么您只需要DELETE VARIABLES 命令(或者ADD FILES 或MATCH FILES 命令都实现完全相同结果 - 除了DELETE VARIABLES 不需要挂起的转换,所以在这种情况下,我个人更喜欢ADD FILES 或MATCH FILES)。
这三个命令中的任何一个都足够了:
DELETE VARIABLES v1.
ADD FILES FILE=* /DROP=v1.
MATCH FILES FILE=* /DROP=v1.
但是,如果你需要动态检查一个变量是否为空,然后只删除它,那么你可以使用 python 来做到这一点。
您需要为您的 SPSS 版本和 spssaux2 模块安装并正确设置 python 集成,并将其保存在 SPSS 可以找到它的适当位置,以便以下操作:
DATA LIST FREE / A B C D.
BEGIN DATA
1 2 3 4 5 6 7 8 9 10 11 12
END DATA.
COMPUTE C=$SYSMIS.
DATASET NAME DSSIM.
BEGIN PROGRAM.
import spssaux2
spssaux2.FindEmptyVars(delete=True)
END PROGRAM.
【讨论】:
SYSMIS 指的不是变量而是单元格。根据您的方法,您必须;
COUNT(SYSMIS(V1)) 如果它等于您的案例(数据文件上的行)计数,那么您可以删除变量 V1。
【讨论】: