我想使用SPSS对多个csv文件进行一些测试。我的问题是,我想:打开文件->做我的测试->报告->依此类推现在,当我播放一个文件的编时,一切正常,因此我想转到下一步。现在我有一个像这样的代码:
DATA LIST FREE/ directory (A100) file (A100) type (A10).
BEGIN DATA
C:\Users\Olivier\Desktop\Zebrys\data\ integ_ narr
END DATA.
compute file=concat(directory,"integ_").
EXECUTE.
compute file=concat(file,type).
EXECUTE.
compute file=concat(file,"_1_unif_tiny_1.csv").
EXECUTE.
compute file=concat("'",file,"'").
EXECUTE.
GET DATA /TYPE=TXT
/FILE=file
/ENCODING='UTF8
....'
无效的部分是当我使用变量“ file”时无法识别它。最后,我想将此代码放入循环中。也许我有一个聪明的方法?
一旦定义了变量名和路径,就可以使用write
命令将其放入语法中,该命令将创建一个带有已编辑命令的新语法-然后可以insert
。
要继续您帖子中的示例,您可以像这样继续:
write out="somepath\open my data.sps"
/"GET DATA /TYPE=TXT /FILE=", file," /ENCODING='UTF8' ... ." .
insert file="somepath\open my data.sps" .
以上语法将按定义打开文件。当然,这是循环浏览几个文件的良好基础-将为当前数据中的每一行创建一个get data
命令。如果使用data list
命令创建一些文件名,则将全部打开。现在,您要做的就是在打开每个文件后添加一些分析。您可以通过在每个get data
命令之后在创建的语法中添加行来做到这一点:
write out="somepath\open my data.sps"
/"GET DATA /TYPE=TXT /FILE=", file," /ENCODING='UTF8' ... ."
/"dataset name newdata."
/"freq var1 to var30".
/"dataset close newdata." .
insert file="somepath\open my data.sps" .
现在,如果在数据中定义了几个名称(在file
变量中,则所插入的语法将依次打开其中每个名称并在其上运行三个额外的命令。