在此宏中包含STDEV并调用

时间:2013-03-05 21:43:45

标签: syntax macros spss

我已经将以下宏汇集在一起​​以获得各种大小的随机样本,然后计算给定次数的MEAN。我还想和MEAN一起计算STDEV。我已经尝试了对脚本的各种修改,但我正在努力应用我认为正确的语法。谢谢你的帮助。

此致

安迪

DEFINE !sample(myvar !TOKENS(1)
/nbsampl !TOKENS(1)
/size !CMDEND).

myvar = the variable of interest (here we want the mean of salary)
nbsampl = number of samples.
size = the size of each samples.


!LET !first='1'
!DO !ss !IN (!size)
!DO !count = 1 !TO !nbsampl.

GET FILE='E:\Monte carlo testing\s1.sav'.
COMPUTE draw=uniform(1).
SORT CASES BY draw.
N OF CASES !ss.

COMPUTE samplenb=!count.
COMPUTE ss=!ss.

AGGREGATE
/OUTFILE=*
/BREAK=samplenb
/!myvar = MEAN(!myvar) /ss=FIRST(ss).

!IF (!first !NE '1') !THEN
ADD FILES /FILE=* /FILE='E:Monte carlo testing\sample.sav'.
!IFEND
SAVE OUTFILE='E:\Monte carlo testing\sample.sav'.
!LET !first='0'

!DOEND.
!DOEND.

VARIABLE LABEL ss 'Sample size'.
EXAMINE
VARIABLES=salary BY ss /PLOT=BOXPLOT/STATISTICS=NONE/NOTOTAL
/MISSING=REPORT.

!ENDDEFINE.


!sample myvar=VAR00001 nbsampl=200 size= 1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100

1 个答案:

答案 0 :(得分:0)

这有帮助吗?

AGGREGATE
 /OUTFILE=*
 /BREAK=samplenb
 /!myvar = MEAN(!myvar)
 /sd = STDEV(!myvar)
 /ss=FIRST(ss).