Minggu, 24 Oktober 2010

kompstat missing value

GMACRO
NOMISS
LET K90=COUNT(C7)
    DO K91=1:K90
        IF C7 (K91)='*'
            GOTO 5
        ENDIF
    ENDDO
MLABEL 5
DELETE K91:K90(C7)
ENDMACRO

GMACRO
NOMISS
LET K90=COUNT(C8)
    DO K91=1:K90
        IF C8 (K91)='*'
            break
        ENDIF
    ENDDO
DELETE K91:K90(C8)
ENDMACRO


gmacro
missingvalue
name C1('data missing value') c2('data tanpa missing value')
let k1=count(c1)
let k2=1 -->operasi langsung dari baris 1
    do k3=1:k1
        if c1(k3)='*'--> jika missing mka tidak melakukan apapun,kec hanya lanjut ke data selanjutnya
    else
        let c2(k2)=c1(k3) --> jka bukan missing atau tdak ada data yang hilang maka data langsung dipindahkan.
        let k2=k2+1--> baris yang hilang dipindahkan kesampingnya dan naik satu baris
    endif
enddo
endmacro


macro
missingvalue dataMV dataTMV
mcolumn dataMV dataTMV
mconstant k1 k2 k3
let k1=count(dataMV)
let k2=1
    do k3=1:k1
        if dataMV(k3)='*'
    else
        let dataTMV(k2)=dataMV(k3)
        let k2=k2+1
    endif
enddo
print dataMV dataTMV
endmacro