根据另一个数据集中的值选择数据集中的变量

Selecting variables in a dataset according to values in another dataset

我想为一个包含大约 100 个变量的数据集创建一个子集,并且我希望只保留那些作为另一个变量的值出现在另一个数据集中的变量。有人可以用 SPSS 语法帮助我吗?

它应该是这样的:

DATASET ACTIVATE basedataset.
SAVE OUTFILE ='Newdata.sav'
/KEEP Var1.

Var 1 是另一个数据集中的变量,它包含我要基于其执行的所有值 subsetting.I 我不确定是否应该涉及向量,或者是否有更简单的方法来执行此操作.

下面将创建一个宏,其中包含您需要的变量列表,用于您的分析或数据子集化。

首先,我将创建一些示例数据来演示:

data list free /v1 to v10 (10f3).
begin data
1,2,3,2,4,7,77,777,66,55
end data.
dataset name basedataset.

data list free/var1 (a4).
begin data
"v3", "v5", "v6", "v9"
end data.
dataset name varnames.

现在创建列表:

dataset activate varnames.
write out="yourpath\var1 selection.sps" 
    /"VARIABLE ATTRIBUTE VARIABLES= ", var1, " ATTRIBUTE=selectVars('yes')." .
exe.

dataset activate basedataset.
VARIABLE ATTRIBUTE VARIABLES=all  ATTRIBUTE=selectVars('no').
insert file="yourpath\var1 selection.sps".
SPSSINC SELECT VARIABLES MACRONAME="!varlist" /ATTRVALUES NAME=selectVars VALUE = yes .

列表现已准备就绪,可以在任何命令中使用宏名称 !varlist 调用,例如:

freq !varlist.

SAVE OUTFILE ='Newdata.sav' /KEEP !varlist.