【问题标题】:How to load CSV files into SPSS Variable and Value Labels如何将 CSV 文件加载到 SPSS 变量和值标签中
【发布时间】:2025-12-28 21:05:06
【问题描述】:

总结

让我先说我是 SPSS 新手,所以如果我的术语不正确,我深表歉意。我有两个关于同一个调查的 CSV 文件(一个带有“变量标签”,一个带有“值标签”)。我想将这些文件组合在一起,而不必手动编写每种语法的代码(如果可能的话)。

1 - 带有 标签的 CSV

respondent_id,     I_am_between,  I_am_happy
3470220950,     26-33 years old,  Sometimes
3470226804,     34-41 years old,  Very Often
3470226906,     34-41 years old,  Sometimes

2 - 带有

的CSV
respondent_id,    I_am_between,     I_am_happy
3470220950,                  2,     3
3470226804,                  3,     4
3470226906,                  3,     3

我要做的是将“26-33 岁”的问题“I_am_between”变量标签与“2”的值相匹配。这在 SPSS 中是否可能(如果可以,如何)?谢谢。

更新 Jay 的解决方案和评论:如 Jay 的帖子中所述,如果您想保持排名/顺序,第一种方法可能不会按您喜欢的顺序加载答案。例如,问题 'I_have_been_with_the_company' 可能会加载以下内容: (1='10 years', 3='3-5 years') 而你想要 (1='

VALUE LABELS
I_have_been_with_the_company
1 '<2 years'
2 '3-5 years'
3 '5-7 years'
4 '8- 10 years'
5 '>10 years'.

EXECUTE.

【问题讨论】:

  • 响应您的更新:我可能应该在下面的帖子中更加明确 - 自动重新编码对于名义字符串变量很有用,但对于具有自然排名顺序的变量不太有用,因为变量在字母顺序。除了交换值标签之外,您还需要重新编码任何序数变量的值!根据数据集中变量的数量,使用我发布的第二个解决方案可能更容易。

标签: spss


【解决方案1】:

最简单的方法是仅导入第一个文件并使用自动重新编码。这样做的优点是简单明了,但缺点是重新编码的值不一定与文件 2 中的值匹配。

GET DATA  /TYPE=TXT
  /FILE="file1.csv"
  /ENCODING='UTF8'
  /DELCASE=LINE
  /DELIMITERS=","
  /ARRANGEMENT=DELIMITED
  /FIRSTCASE=2
  /IMPORTCASE=ALL
  /VARIABLES=
  respondent_id F10.0
  V2 A15
  V3 A10.
CACHE.

AUTORECODE VARIABLES=V2 V3 
  /INTO I_am_between I_am_happy.

DELETE VARIABLES V2 V3.

或者,第二种方法是将两个文件导入单独的数据文件,使用添加变量将它们合并,然后使用 STATS VALLBLS FROMDATA 扩展命令(您需要安装)将一个变量的值应用为标签到另一个变量。

GET DATA  /TYPE=TXT
  /FILE="file2.csv"
  /ENCODING='Locale'
  /DELCASE=LINE
  /DELIMITERS=","
  /ARRANGEMENT=DELIMITED
  /FIRSTCASE=2
  /IMPORTCASE=ALL
  /VARIABLES=
  respondent_id F10.0
  I_am_between F2
  I_am_happy F2.
CACHE.

DATASET NAME DataSet1 WINDOW=FRONT.

GET DATA  /TYPE=TXT
  /FILE="file1.csv"
  /ENCODING='UTF8'
  /DELCASE=LINE
  /DELIMITERS=","
  /ARRANGEMENT=DELIMITED
  /FIRSTCASE=2
  /IMPORTCASE=ALL
  /VARIABLES=
  respondent_id F10.0
  V2 A15
  V3 A10.
CACHE.

DATASET NAME DataSet2 WINDOW=FRONT.

STAR JOIN 
  /SELECT t0.V2, t0.V3, t1.I_am_between, t1.I_am_happy 
  /FROM * AS t0 
  /JOIN 'DataSet1' AS t1 
    ON t0.respondent_id=t1.respondent_id 
  /OUTFILE FILE=*.

STATS VALLBLS FROMDATA VARIABLES=I_am_between I_am_happy LBLVARS=V2 V3 
/OPTIONS VARSPERPASS=20  
/OUTPUT EXECUTE=YES.

DELETE VARIABLES V2 V3.

【讨论】:

  • 非常感谢杰!我使用了第一个解决方案,而自动重新编码就成功了。我不知道 SPSS 语法编辑器有多么强大。