我有50个外部EXCEL文件。对于其中的每个文件,假设是#I
,我按照SPSS-stattics25的语法导入数据:
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 )中包含的变量进行排名,并选择最多一个案例,如下所示:
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文件中排名相同的次数。
我怎样才能以一种聪明的方式做到这一点呢?
发布于 2021-01-20 22:04:23
由于我看不到真实的数据文件,所以下面的内容有点蒙在鼓里,但我认为这应该是一个可行的策略(您不妨尝试一下:):
* 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.
进行计数或求和
https://stackoverflow.com/questions/65788329
复制相似问题