#1294 closed defect (fixed)
Tabular estadísticos - Función tol
Reported by: | jgarcia | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | normal | Milestone: | Métodos de presentación gráfica ejecutables desde TOL |
Component: | Kernel | Version: | head |
Severity: | normal | Keywords: | |
Cc: |
Description
Buenos días.
Quería utilizar la función de botón derecho (de una serie) 'Tabular estadísticos' en un código, sin necesidad de tabular nada, es decir, guardar en una variable los estadísticos de una serie o de un set de series para realizar calculos con ellos.
No encuentro la forma de hacerlo. La función de botón derecho utiliza TCL y es el propio objeto btable el que tiene un metodo fillStatistics. Este, a su vez, llama a ::tol::seriestat.
Cómo puedo hacer esto que he explicado?
Debería haber una función en stdlib que hiciera esto.
Change History (4)
comment:1 Changed 14 years ago by
comment:2 Changed 14 years ago by
Status: | new → accepted |
---|
comment:3 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
comment:4 Changed 14 years ago by
Perdón, hay un error en la declaración anterior debido a que EvalSet
requiere un sólo argumento y los estadísticos tienen 3, aunque dos son opcionales:
Set CalcStatisticsOfSeries(Set series) { Set statistics.of.series = SetOfCode( CountS,MaxS,MinS,SumS,AvrS,StDsS,VarS,AsimetryS,KurtosisS,MedianS); Set result = EvalSet(statistics.of.series, Set(Code stat) { Set aux = EvalSet(series,Real(Serie ser) { stat(ser) }); Eval(Name(stat)+"=aux") }); Real SetIndexByName(result); result };
No alcanzo a comprender para qué puedes necesitar semejante cosa, cuando cada estadístico tiene su propia función que puedes llamar de forma independiente sobre la serie que desees y manipular luego a tu antojo. Por ejemplo, la función que calcula la media de una serie es
AvrS
, y para aplicarla a un conjunto de series basta con usarEvalSet
. Pongamos por caso que lo que vas a manipular posteriormente son las medias y las desviaciones de un conjunto de seriesPues bien, sólo tendrías que escribir esto en TOL:
Luego podrías acceder a los valores almacenados por nombre, por ejemplo a la media de la segunda serie sería así:
Desde luego no habría ningún problema en crear una función que hiciera esto para los estadísticos usuales que aparecen en la tabla aunque no son los únicos posibles. Otros usuairos podrían querer deterinados cuantiles o vaya usted a saber el qué. Tampoco me queda nada claro cual es la estructura esperada de la información devuelta, aunque imagino que podría ser algo así: