我已经完成了一些搜索,但仍未找到问题的答案。我有大量的.csv文件,我想将其转换为SPSS文件。假设我有1000个.csv文件,我想将它们全部放入1000个SPSS文件中。我可以通过要求SPSS从.csv读取数据来执行此文件,只需点击几下。但是,由于我有1000个文件,我正在寻找一种方法来做到这一点,而不必点击几千次并犯很多错误。我对编程很新,所以我会很感激一些虚拟技巧。非常感谢!
*更新: 我刚刚包含了示例.csv和.sav文件的链接。 csv file sav file 所有.csv文件都是一样的。它们是来自同一实验的数据,但是在不同的(人类)主题上。
答案 0 :(得分:1)
您可以使用SPSSINC PROCESS FILES扩展命令在通配符或显式列表指定的大量文件上迭代一组语法。您编写了应该应用于每个输入的语法文件。在该文件中,您使用PROCESS FILES定义的文件句柄或宏来打开文件。然后在其上运行任意语法,在您的情况下,使用输入宏来构建输出文件名并运行SAVE命令。
一旦安装了命令,PROCESS FILES会在Utilities菜单上显示为Process Data Files。它需要Python Essentials,并且是版本23的Essentials的一部分。对于V22,您可以从Utilities菜单安装它;对于旧版本,您需要从SPSS社区网站(www.ibm.com/developerworks/spssdevcentral)下载> SPSS Statistics的下载>扩展命令并通过实用程序安装。
答案 1 :(得分:0)
如果您通过SPSS的菜单打开第一个.csv文件,您应该能够粘贴语法以手动打开.csv文件。在向导的第6步中,它会询问"您是否要粘贴语法"为此选择是。这应该为您提供正确执行此操作的语法。 (我尝试使用上传的.csv文件,但由于填充变量的方式,我无法确定变量是否应该是字符串,数字等)。完成此操作后,您可以添加语法以将打开的文件另存为.sav。然后将每个文件转换为.sav,您需要做的就是更改数字。
SAVE OUTFILE='C:\filepath\84.sav'
/COMPRESSED.
可能有一种方法可以使用DO REPEAT循环自动运行该过程,但这应该是自动化的起点。
答案 2 :(得分:0)
我用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的新手,请确保观看预期的空白区域并包含其余的变量,我将这些变量留给了空间。如果收到错误消息,请使用#(例如#spss.Submit())注释掉spss.Submit()命令,并检查python print out是否存在字符串错误。我希望有所帮助!