如何以编程方式合并具有冲突变量名称的数据集中的个案?
How do I programmatically merge cases from datasets with conflicting variable names?
我想将多个 SPSS 数据集中的案例添加到一个 SPSS 数据集中。
这是我的代码:
DATASET ACTIVATE DataSet1.
ADD FILES /FILE=*
/FILE='Path\to\dataset.sav'.
EXECUTE.
但是我得到这个错误:Mismatched variable types on the input files
。
我希望 SPSS 忽略冲突的列并仅从没有冲突的列中添加个案。
我该怎么做?
发生这种情况是因为两个不同数据源中的同名变量具有 不同的格式类型(STRING、NUMERIC、DATE 等)或者它们是 两个字符串,但长度不同。
后者,不同长度的字符串变量,可以这样解决:
DATA LIST FREE / V(A1).
BEGIN DATA.
a b c
END DATA.
DATASET NAME DS1.
DATA LIST FREE / V(A2).
BEGIN DATA.
1 2 3
END DATA.
DATASET NAME DS2.
STATS ADJUST WIDTHS VARIABLES=ALL WIDTH=MAX /FILES DS1 DS2.
DATASET ACTIVATE DS1.
ADD FILES FILE=* /FILE=DS2.
但是,如果您有不同格式类型的不匹配,那么由于许多不同的排列,解决起来会稍微复杂一些,因此您可能希望在合并之前评估哪些变量有问题并 harmonize/delete 它们文件。尽管如此,可能还是值得进行此练习,因为具有不同格式类型的相同变量名可能是错误数据的迹象。
如果您知道哪些变量冲突,您可以使用 KEEP 子命令 select 其他变量,或者您可以使用 RENAME 命令分配新名称并在之后调整结果。
如果您需要协调名称,而问题是变量的字符串长度不同,但本应相同,则 STATS ADJUST WIDTHS 扩展命令可以在合并之前协调宽度。
我想将多个 SPSS 数据集中的案例添加到一个 SPSS 数据集中。
这是我的代码:
DATASET ACTIVATE DataSet1.
ADD FILES /FILE=*
/FILE='Path\to\dataset.sav'.
EXECUTE.
但是我得到这个错误:Mismatched variable types on the input files
。
我希望 SPSS 忽略冲突的列并仅从没有冲突的列中添加个案。
我该怎么做?
发生这种情况是因为两个不同数据源中的同名变量具有 不同的格式类型(STRING、NUMERIC、DATE 等)或者它们是 两个字符串,但长度不同。
后者,不同长度的字符串变量,可以这样解决:
DATA LIST FREE / V(A1).
BEGIN DATA.
a b c
END DATA.
DATASET NAME DS1.
DATA LIST FREE / V(A2).
BEGIN DATA.
1 2 3
END DATA.
DATASET NAME DS2.
STATS ADJUST WIDTHS VARIABLES=ALL WIDTH=MAX /FILES DS1 DS2.
DATASET ACTIVATE DS1.
ADD FILES FILE=* /FILE=DS2.
但是,如果您有不同格式类型的不匹配,那么由于许多不同的排列,解决起来会稍微复杂一些,因此您可能希望在合并之前评估哪些变量有问题并 harmonize/delete 它们文件。尽管如此,可能还是值得进行此练习,因为具有不同格式类型的相同变量名可能是错误数据的迹象。
如果您知道哪些变量冲突,您可以使用 KEEP 子命令 select 其他变量,或者您可以使用 RENAME 命令分配新名称并在之后调整结果。
如果您需要协调名称,而问题是变量的字符串长度不同,但本应相同,则 STATS ADJUST WIDTHS 扩展命令可以在合并之前协调宽度。