我想为一个具有约100个变量的数据集创建一个子集,我希望仅保留那些在另一个数据集中作为另一个变量的值出现的变量。有人可以用SPSS语法帮助我吗?
它应该是这样的:
DATASET ACTIVATE basedataset.
SAVE OUTFILE ='Newdata.sav'
/KEEP Var1.
变量1是另一个数据集中的变量,该变量包含我要基于其进行子集设置的所有值。我不确定是否应包含vector或是否有更简单的方法来实现此目的。
答案 0 :(得分:1)
以下内容将创建一个宏,其中包含您需要用于分析或子集数据的变量列表。
首先,我将创建一些示例数据进行演示:
$url = "users/1234";
$url_array = explode("/", $url, 2);
echo $url_array[1];
现在创建列表:
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.