Loops 循环浏览几个文件并分析每个文件

Loops 循环浏览几个文件并分析每个文件,loops,csv,spss,Loops,Csv,Spss,我想用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=con

我想用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
命令将其转换为语法,这将创建一个新语法,其中包含一个已编辑的命令,然后您可以
插入

要继续文章中的示例,您可以这样继续:

write out="somepath\open my data.sps" 
      /"GET DATA /TYPE=TXT /FILE=", file," /ENCODING='UTF8' ...  ." .
insert file="somepath\open my data.sps" .
按照定义,上述语法将打开文件。
当然,这是循环几个文件的良好基础-将为当前数据中的每一行创建一个
get data
命令。如果使用
数据列表
命令创建几个文件名,它们都将被打开。
现在,您还需要在打开每个文件后添加一些分析。您可以通过在每个
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" .

现在,如果您在数据中定义了几个名称(在
文件
变量中),插入的语法将依次打开每个名称并在其上运行三个额外的命令。

一旦您定义了变量名称和路径,您可以使用
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
命令。如果使用
数据列表
命令创建几个文件名,它们都将被打开。
现在,您还需要在打开每个文件后添加一些分析。您可以通过在每个
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" .

现在,如果您在数据中定义了几个名称(在
文件
变量中),插入的语法将依次打开它们中的每一个,并在其上运行三个额外的命令。

请参阅下面的答案,但还有一个有用的提示:在计算文件名时,您可以在一行中获得相同的结果,如下所示:
计算文件=concat(“”,目录,“整型”,键入“\u 1\u unif\u tiny\u 1.csv”,“”)。
。另外请注意,在任何情况下,您都不需要在每一个语法行之后执行(有时根本不需要-查找)。请参阅下面的答案,但还有一个有用的提示:当计算文件名时,您可以在一行中得到相同的结果,如下所示:
computefile=concat(“”,目录,“integ””,键入“\u 1\u unif tiny\u 1.csv”,“”)。
。还要注意的是,在任何情况下,您都不需要在每一个语法行之后执行(有时根本不需要-查找)。