[R-es] Funcion para una tabla de frecuencias

J. Miguel Marin jmmarin en est-econ.uc3m.es
Vie Nov 20 11:57:45 CET 2009


Hola,

muchas gracias por vuestra ayuda.
Quizás lo que dice Teresa es lo que mejor se adapta a lo que yo 
buscaba: tablas introductorias como aparecen en los textos básicos y 
que suelen recoger los programas comerciales como opciones inmediatas.

También eran muy interesantes los consejos sobre programación aunque mi 
idea era tratar de introducir el R de una manera competitiva respecto a 
los programas comerciales, aunque eso implique tomar opciones menos 
ortodoxas.

Un saludo

> Hola, yo te respondo sobre las tablas de frecuencia: en la libreria
> agricolae hay una función muy simple que hace las tablas como se suelen
> enseñar en los cursos introductorios, ademas podes asociarle facilmente el
> histograma correspondiente, acá va del ejemplo del paquete:
>
>
> library(agricolae)
> data(growth)
> attach(growth)
> h2<-graph.freq(height,plot=FALSE)
> table.freq(h2)
>
>
> saludos, teresa
>
>
> El 16 de noviembre de 2009 16:25, Kjetil Halvorsen
> <kjetil1001 en gmail.com>escribió:
>
>> Respono yo mismo, para eludivar cuan "evil" es attach()
>>
>> 2009/11/16 Kjetil Halvorsen <kjetil1001 en gmail.com>:
>> > 2009/11/16 J. Miguel Marin <jmmarin en est-econ.uc3m.es>:
>> >> Bueno,
>> >>
>> >> obviamente, la solución inmediata es poner attach(dataframe)
>> >>
>> >> es decir,
>> >>
>> >> freq <- function(x,cosa){
>> >> attach(cosa)
>> >> list(data.frame(table(cut(x, breaks=nclass.Sturges(x)))))
>> >> }
>>
>> despues de usar freq(y, cosa)
>> una vez, una copia de cosa esta en la lista de busqueda (tipea
>> search() para verlo)
>>
>> despues de llamar freq(y2, cosa, dos copias de cosa ... tipea serch()
>> para ver!
>> despues de usarlo la tercera vez, etc .......
>>
>> Como un mínimo la función tenía que ser definida como esto:
>>
>> >> freq <- function(x,cosa){
>> >> attach(cosa)
>> >> ans <- list(data.frame(table(cut(x, breaks=nclass.Sturges(x)))))
>>     detach(cosa)
>>     ans
>> >> }
>>
>> Pero: Lo mejor es olvidarse de attach() y usar with()
>>
>> Kjetil
>>
>>
>> >>
>> >
>> > Lo último que hacer es enseñar a futuros usuarios de usar attach(),
>> pertenece
>> > a la parte arqueológico de R!
>> > Tienes que usar with():
>> > with(cosa, lo_que_quiere_hacer_con_cosa)
>> > por ejemplo:
>> > en lugar de definir la funcion freq (que en realidad es una versión de
>> with()):
>> > with(cosa, table(x))
>> > o
>> > with(cosa,data.frame(table(cut(x,breaks=nclass.Sturges(x)))))
>> >
>> > with() necesita más propaganda!!!
>> >
>> > Para la pregunta original, talves:
>> > library(Hmisc)  # paquete muy extenso de Frank Harrel
>> > ?describe
>> > example(describe)
>> >
>> > Kjetil
>> >
>> >
>> >> Pero estaría mejor no tener que poner el segundo argumento en la función
>> si
>> >> eso fuera posible...
>> >> Y mejor aún: incluir un submenú en RCommander.
>> >>
>> >>
>> >>
>> >>>
>> >>> Hola,
>> >>>
>> >>> me gustaría hacer una función que fuera bastante automática (para
>> >>> docencia)
>> >>> y que hiciera tablas de frecuencias.
>> >>>
>> >>> La primera idea que funciona es ésta
>> >>>
>> >>> freq <- function(x){
>> >>> list(data.frame(table(cut(x, breaks=nclass.Sturges(x)))))
>> >>> }
>> >>>
>> >>> Sin embarg,o hay que poner (en general) en x algo así como
>> >>> el_dataframe$x
>> >>> para que funcione y la gente se lía si les dices que lo pongan así.
>> >>>
>> >>> Si escribo la función como
>> >>>
>> >>> freq <- function(x,dataframe){
>> >>> list(data.frame(table(cut(dataframe$x,
>> >>> breaks=nclass.Sturges(dataframe$x)))))
>> >>> }
>> >>>
>> >>> NO funciona con una tabla de datos dada.
>> >>>
>> >>> Por otro lado, también estaría bien que si se hace un ls() de objetos,
>> >>> detectase
>> >>> aquél que fuese un data frame y lo tomase por defecto. Pero no sé cómo
>> >>> hacerlo.
>> >>>
>> >>> Todo ello para hacer una función automática un poco para la gente que
>> no
>> >>> se aclara
>> >>> demasiado con RCommnader
>> >>>
>> >>> Finalmente ¿esto se podría programar en RCommander de manera asequible?
>> Me
>> >>> temo que no viene incluída ninguna función para hacer las típicas
>> tablas de
>> >>> frecuencias para variables cuantitativas...
>> >>>
>> >>> Un saludo
>> >>>
>> >>>
>> >>> jm~
>> >>>
>> >>> _______________________________
>> >>>
>> >>>       J. Miguel Marin
>> >>>
>> >>> http://www.est.uc3m.es/jmmarin
>> >>>
>> >>>   Dep. of Statistics
>> >>> University Carlos III of Madrid
>> >>>       Spain (E.U.)
>> >>>
>> >>> _______________________________________________
>> >>> R-help-es mailing list
>> >>> R-help-es en r-project.org
>> >>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >>>
>> >>
>> >>
>> >>
>> >>
>> >> jm~
>> >>
>> >> _______________________________
>> >>
>> >>       J. Miguel Marin
>> >>
>> >> http://www.est.uc3m.es/jmmarin
>> >>
>> >>   Dep. of Statistics
>> >> University Carlos III of Madrid
>> >>       Spain (E.U.)
>>  >>
>> >> _______________________________________________
>> >> R-help-es mailing list
>> >> R-help-es en r-project.org
>> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >>
>> >
>> >
>> >
>> > --
>> > "... an entire human genome would fit on a music CD."
>> >
>> > --- www.thinkgene.com
>> >
>>
>>
>>
>> --
>> "... an entire human genome would fit on a music CD."
>>
>> --- www.thinkgene.com
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
>
> --
> Ing. Agr. M.Sc.Teresa Boca
> Instituto de Clima y Agua INTA Castelar.
> Las Cabañas y Los Reseros s/n°
> 1712 Castelar Pcia de Buenos Aires, Argentina
> Cel: 01115-3572-9584
> Tel: (54-11)-4621-0125/1684
> Fax:(54-11)-4621-5663
> tboca en cnia.inta.gov.ar
>
> 	[[alternative HTML version deleted]]
>
>




jm~

_______________________________

        J. Miguel Marin

http://www.est.uc3m.es/jmmarin

    Dep. of Statistics
University Carlos III of Madrid
        Spain (E.U.)



Más información sobre la lista de distribución R-help-es