SPSS-statistics25 中多个外部文件的变量总和

问题描述

我有 50 个外部 EXCEL 文件。对于这些文件中的每一个,假设 #I,我按照 SPSS-statistics25 的语法导入数据:

GET DATA /TYPE=XLSX
 /FILE='file#I.xlsx'
 /SHEET=name 'Sheet2'
 /CELLRANGE=full
 /READNAMES=on
 /ASSUMEDSTRWIDTH=32767.
EXECUTE.
DATASET NAME DataSet1 WINDOW=FRONT.

然后,我对 #I 文件 (WA CI) 中包含的变量进行排名,最多选择一个案例,如下所示:

RANK VARIABLES= WA CI (D) 
  /RANK  
  /PRINT=YES  
  /TIES=LOW.
COUNT SVAR= RWA RCI (1).
SELECT IF( SVAR=2).
EXECUTE.

任务如下:

我应该在每个 EXCEL 文件 #I 上打印 RWA 循环值的总和。 RWA 的值可以为 1,也可以为空。如果没有选择的案例(RWA 为空),则对值总和的贡献应为 0。最终结果应为 RWA 和 RCI 在 50 个 Excel 文件中具有相同 TOP 排名的次数

我怎样才能以聪明的方式做到这一点?

解决方法

由于看不到真实的数据文件,下面有点摸不着头脑,但我认为应该是一个可行的策略(你不妨试试:)):

* first defining a macro to stack all the files together.
define stackFiles ()
GET DATA /TYPE=XLSX /FILE='file1.xlsx' 
    /SHEET=name 'Sheet2' /CELLRANGE=full /READNAMES=on /ASSUMEDSTRWIDTH=32767 /keep WA CI.
compute source=1.
exe.
dataset name gen.
!do !i=2 !to 40
    GET DATA /TYPE=XLSX /FILE=!concat("'file",!i,".xlsx'")
        /SHEET=name 'Sheet2' /CELLRANGE=full /READNAMES=on /ASSUMEDSTRWIDTH=32767/keep WA CI.
    compute source=!i.
    exe.
    add files /file=gen /file=*.
    exe.
!doend.
!enddefine.
* now run the macro.
stackFiles .

* now for the rest of the analysis.
* first split the data by source file,then rank and select.
sort cases by source.
split file by source.
RANK VARIABLES= WA CI (D) /RANK /PRINT=YES /TIES=LOW.
COUNT SVAR= RWA RCI (1).
SELECT IF SVAR=2.
EXECUTE.

此时您最多剩余 40 行 - 每个原始文件中的 0 或 1 行。您可以使用 descriptives RWA.

进行计数或求和