SPSS:如何循环和连接值以创建文件

时间:2017-04-18 17:28:15

标签: loops spss

您好我有一个语法文件,我想创建几个.sav个文件

for 87 to 95
  for 1 to 12
    FILE HANDLE EPA/NAME='C:\Users\gma\Downloads/pub0187.prn'/LRECL=138.
    DATA LIST FILE=EPA/
     STATES_PROV  001 - 007
     ...          .....
     VARIABLE LABELS
     ...
     MISSING VALUES
     ....

    SAVE OUTFILE='C:\Users\gma\Downloads/epa0187.sav'.
  end
end

输出文件

epa0187.sav
epa0287.sav
epa0387.sav
...
epa0188.sav
...
epa0189.sav
...
epa1295.sav

输入文件

pub0187.prn
pub0287.prn
...
pub0188.prn
...
pub0189.prn
...
pub1295.prn

所以换句话说,我想在1987年1月至1995年12月期间为每个月创建一个.sav档案。

1 个答案:

答案 0 :(得分:2)

您可以使用标准统计语法创建宏循环,但这是使用统计信息中的Python代码的解决方案。请注意,缩进很重要。

begin program.
import spss

for year in range(87, 96):  # note stop is one beyond
    for month in range(1, 13):  # one beyond
        spss.Submit(r"""FILE HANDLE EPA
/NAME='C:\Users\gma\Downloads/pub%(month)s%(year)s.prn'/LRECL=138.
DATA LIST FILE=EPA/
 STATES_PROV  001 - 007
 ...          .....
 VARIABLE LABELS
 ...
 MISSING VALUES
 ....

SAVE OUTFILE='C:\Users\gma\Downloads/epa%(month)s%(year)s.sav'.""" % locals())
end program.