将大量 .csv 文件转换为 SPSS 文件

converting mass .csv files into SPSS files

我进行了一些搜索,但仍未找到问题的答案。我有大量 .csv 文件,我想将其转换为 SPSS 文件。假设我有 1000 个 .csv 文件,我想将它们全部放入 1000 个 SPSS 文件中。我可以通过要求 SPSS 从 .csv 中读取数据来逐个文件地执行此操作,这需要点击几下。但是,由于我有 1000 个文件,我正在寻找一种方法来执行此操作,而不必单击几千次并且不会犯很多错误。一般来说,我对编程还很陌生,所以我会很感激一些虚拟技巧。非常感谢!

*更新: 我刚刚包含了示例 .csv 和 .sav 文件的链接。 csv file sav file 所有 .csv 文件都是一样的。它们是来自同一实验的数据,但针对的是不同的(人类)受试者。

如果您通过 SPSS 的菜单打开第一个 .csv 文件,您应该能够粘贴语法以手动打开 .csv 文件。在向导的第 6 步中,它要求 "Would you like to paste the syntax" select 是。这应该为您提供正确执行此操作的语法。 (我尝试使用上传的 .csv 文件,但由于变量的填充方式,我无法确定变量是否应为字符串、数字等)。完成后,您可以添加语法以将打开的文件另存为 .sav。然后将每个文件转换为 .sav,您需要做的就是更改数字。

SAVE OUTFILE='C:\filepath.sav'
/COMPRESSED.

可能有一种方法 运行 使用 DO REPEAT 循环自动完成整个过程,但这应该作为自动化的起点。

您可以使用 SPSSINC PROCESS FILES 扩展命令对通配符或显式列表指定的大量文件迭代一组语法。您编写了一个应用于每个输入的语法文件。在该文件中,您使用 PROCESS FILES 定义的文件句柄或宏来打开文件。然后你 运行 任意语法,在你的情况下,使用输入宏来构建输出文件名和 运行 SAVE 命令。

安装命令后,PROCESS FILES 将作为 Process Data Files 出现在“实用程序”菜单中。它需要 Python Essentials 并且从版本 23 开始是 Essentials 的一部分。对于 V22,您可以从 Utilities 菜单安装它;对于旧版本,您需要从 SPSS Community 网站 (www.ibm.com/developerworks/spssdevcentral) > Downloads for SPSS Statistics > Extension Commands 下载并通过 Utilities 安装。

我会用 python 模块和范围循环来改变它...这对我有用,假设每个 .csv 文件都被命名为主题 1、主题 2 等,并且完全相同格式。另外,用正确的路径替换驱动器路径。

Begin Program.
import spss

for x in range (1, 1001):

   y = """GET DATA  /TYPE=TXT
     /FILE= 'C:\YOUR DRIVE PATH HERE\subject """ + str(x) + """.csv'
     /DELCASE=LINE
     /DELIMITERS=" ,"
     /QUALIFIER="'"
     /ARRANGEMENT=DELIMITED
     /FIRSTCASE=2
     /IMPORTCASE=ALL
     /VARIABLES=
     Age A3
     COL A4
     Clear A6
     CorrectAnswer A13
     Education A9
     Ethnicity A9
     Gender A6."""

   z = "save outfile = 'C:\YOUR DRIVE PATH HERE\subject " + str(x) + ".sav'."

   print y
   print z
   spss.Submit(y)
   spss.Submit(z)

End Program.

如果您是 python 的新手,请确保观看预期的白色 space 并包括我在 space 中遗漏的其余变量。如果您收到错误消息,请使用 # 注释掉 spss.Submit() 命令(例如 #spss.Submit() )并检查 python 打印出来的字符串错误。希望对您有所帮助!