Hi there,

I'm interested in calculating a geometric mean inside the aggregate function in a panel dataset.
While my UDF works in plain script the results when using as aggregation function are wrong.
Could you please help me with this issue, here is the hansl script:

function scalar fn_geomean(series X)

    catch scalar Y = prodc({X})^(1/nobs(X))
    if $error<>0
        Y=NAN
    endif
    return Y
       
end function

open abdata.gdt

series test = abs(n)

matrix testmean = aggregate(test, const, mean)
eval mean(test)~ testmean[, 3]
matrix testgeomean = aggregate(test, const, fn_geomean)
eval fn_geomean(test) ~ testgeomean[, 3]


Cheers
Leon