使用语法在 SPSS 数据集之间复制变量

Copy variable between SPSS Datasets using Syntax

根据反馈进行编辑...

有没有办法在 SPSS 中将变量从一个打开的数据集复制到另一个?我尝试的是创建一个捕获变量值的临时变量,并在计算命令中使用该临时变量到下一个数据集:

DATASET ACTIVATE DataSet1.
COMPUTE #IDSratch = ID.
Dataset Activate DataSet2.
Compute ID = #IDScratch.

这失败了,因为激活 Dataset2 导致从内存中删除临时变量。

匹配文件 and/or STAR JOIN 语法适用于大多数情况,但在我的例子中,因为 Dataset1 的记录比 Dataset2 多得多,并且两个数据集中都没有匹配的键,这会产生额外的记录。

我最初的问题是“是否有一种简单、直接的方法可以在数据集之间复制变量?”如果使用语法,答案似乎仍然是通过语法合并文件是 best/only 方法。

从 SPSS 21.0 版开始,STAR JOIN 命令 (see documentation here) 允许您使用 SQL 语法连接数据集。所以基本上,你只能从每个数据集中获得你想要的变量。

假设您的第一个数据集名为 data_1 并且具有 idvar_1a。你的第二个数据叫data_2,有相同的idvar_2a;你只想将 var_2a 拉到第一个数据集。如果两个数据集都打开,则可以 运行:

dataset activate data_1.
STAR JOIN
  /SELECT t0.var_1a, t1.var_2a
  /FROM * AS t0
  /JOIN 'data_2' AS t1
    ON t0.id=t1.id
  /OUTFILE FILE=*.

我上面提供的 link 有很多关于如何连接保存在您计算机中的文件的变量的示例。