Hola!

En relación a Frecuencias (aunque creo que me he perdido un poco en el hilo
de la discusión):

Si lo que quieres es una frecuencia normal y corriente de un factor a mi me
funciona perfectamente la función freq() del paquete "descr". Con esta
función no sólo haces la frecuencia sino que además puedes definir perdidos
del usuario, utilizar ponderación y, a no ser que le digas lo contrario, te
dibuja el gráfico de forma automática.

Además es perfectamente compatible con xtable y fácil de guardar como
data.frame o matrix.

En el paquete también hay alguna otra maravilla como crosstab con
ponderación.

Espero que te sirva, y si no era esto espero que le sirva a algún otro.

Hasta pronto!



2012/3/1 <r-help-es-request@r-project.org>

> Envíe los mensajes para la lista R-help-es a
>        r-help-es@r-project.org
>
> Para subscribirse o anular su subscripción a través de la WEB
>        https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> O por correo electrónico, enviando un mensaje con el texto "help" en
> el asunto (subject) o en el cuerpo a:
>        r-help-es-request@r-project.org
>
> Puede contactar con el responsable de la lista escribiendo a:
>        r-help-es-owner@r-project.org
>
> Si responde a algún contenido de este mensaje, por favor, edite la
> linea del asunto (subject) para que el texto sea mas especifico que:
> "Re: Contents of R-help-es digest...". Además, por favor, incluya en
> la respuesta sólo aquellas partes del mensaje a las que está
> respondiendo.
>
>
> Asuntos del día:
>
>   1. Re: Frecuencias (ppueyo@isciii.es)
>   2. Re: Frecuencias (Francisco Viciana)
>   3. Re: Frecuencias (Marcuzzi)
>   4. Re: Frecuencias (Jorge I Velez)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 1 Mar 2012 12:31:08 +0100
> From: ppueyo@isciii.es
> To: "izquierdo" <izquierdo@uniovi.es>, r-help-es@r-project.org
> Subject: Re: [R-es] Frecuencias
> Message-ID: <B0085258903@perseo.isciii.es>
> Content-Type: text/plain
>
> Bueno, he de decir que he mirado los dos mÃ©todos que me habeis sugerido,
> que son muy parecidos; aun asÃ­ no me ha funcionado se queja de la longitud
> diferente de vectores ....
> El caso es que he pensado otra forma de hacer, mÃ¡s larga, pero creo que
> efectiva, el problema es que tampoco funciona, y no sÃ© porquÃ©, porque lo
> veo muy sencillo (me llevo mal con R) os pongo un poco el caso a ver si
> podÃ©is ver algÃºn fallo de sintaxis y lo entendÃ©is:
>
> Tengo 18 grupos de edad (del 1 al 18), pero al pedir las precuencias, es
> posible que haya grupos de edad sin representaciÃ³n, por tanto necesitarÃ­a
> un 0.
>
> En este caso:
>
> Tabla "frech"
>
>    grupo   frecuencia
> 5  "5"      "1"
> 6  "6"      "1"
> 7  "7"      "3"
> 8  "8"      "2"
> 9  "9"      "5"
> 10 "10"  "20"
> 11 "11"  "20"
> 12 "12"  "31"
> 13 "13"  "39"
> 14 "14"  "54"
> 15 "15"  "66"
> 16 "16"  "54"
> 17 "17"  "23"
> 18 "18"  "12"
>
> AsÃ­ que pensÃ© en una funciÃ³n IF, de tal modo que si el primer grupo era
> igual a "1" , entonces me escibiese la frecuencia en otra columna que
> habÃ­a creado previamente   f99h<-c( )
> En caso contrario, que me escribiese un "0".
> Ã‰ste es el cÃ³digo que he utilizado, y no me hace nada....
>
> > if(frech[,1]=="1"){
> + f99h[1,1]=frech[1,2]
> + f99h[1,1]<-0}
>
> EstÃ¡ claro que si yo pidiera f99h, el primer nÃºmero tendrÃ­a que ser un
> "0", pero no lo hace....
> y asÃ­ lo tengo que hacer con los 17 grupos restantes; me imagino que
> habrÃ¡ una forma mÃ¡s rÃ¡pida, pero ya os digo que lo del
> "factor(levels......" no me funciona. Â¿Se podrÃ­a iterar la funciÃ³n IF en
> un bucle for? porque ahora son 18 grupos y no me supone mucho tiempo, pero
> cuando tenga 18 grupos divididos en 52 provincias.... me acabarÃ© cortando
> las venas.... jejeje
>
> Un saludo, y gracias
> Pablo
>
>
>
>
>
> ----- Mensaje original -----
> De: izquierdo
> Para: r-help-es@r-project.org
> Enviado: 27/02/2012 14:02:07
> Asunto: Re: [R-es] Frecuencias
>
>
> Lo primero que tienes que hacer es mirar los levels de tu variable de
> edades, los que no aparecenahÃ­ no van a aparecer en la tabla, yo harÃ­a
> una cosa asÃ­:
>
> > Edades <- c(15,16,19,20,20)
> > table(Edades)
> Edades
> 15 16 19 20
> 1 1 1 2
> > levels(factor(Edades))
> [1] "15" "16" "19" "20"
> > lab <- factor(max(Edades):min(Edades))
> > EdadesFactor <- factor(Edades, levels=lab)
> > table(EdadesFactor)
> EdadesFactor
> 20 19 18 17 16 15
> 2 1 0 0 1 1
>
> Espero que te sirva.
> Un saludo,
>
> Pelayo
>
>
> On Mon, 27 Feb 2012 14:25:04 +0100, ppueyo@isciii.es wrote:
> > Hola a tod@s:
> >
> > Tengo una duda sobre la salida de la tabla de frecuencias de R.
> >
> > Estoy utilizando la funciÃ³n table, para que me saque el numero de
> > casos agrupados por edades; el caso, es que si no hay de una edad,
> > necesito que me ponga un 0; o un NA, algo para que luego pueda
> > utilizar los vectores de salida para seguir haciendo operaciones y
> > que
> > no se me queje de la longitud, habrÃ­a alguna forma?
> >
> > La opciÃ³n que habÃ­a pensado, aunque no se muy bien como llevarla a
> > cabo, serÃ­a crear un vector de "0" y con funciones "IF", que me lo
> > reescribiera con las frecuencias sacadas de la funciÃ³n table.
> >
> > Un saludo,
> >
> > Pablo
> >
> >
> > ************************* AVISO LEGAL *************************
> > Este mensaje electrÃ³nico estÃ¡ dirigido exclusivamente a sus
> > destinatarios,
> > pudiendo contener documentos anexos de carÃ¡cter privado y
> > confidencial.
> > Si por error, ha recibido este mensaje y no se encuentra entre los
> > destinatarios, por favor, no use, informe, distribuya, imprima o
> > copie su
> > contenido por ningÃºn medio. Le rogamos lo comunique al remitente y
> > borre
> > completamente el mensaje y sus anexos. El Instituto de Salud Carlos
> > III no
> > asume ningÃºn tipo de responsabilidad legal por el contenido de este
> > mensaje
> > cuando no responda a las funciones atribuidas al remitente del mismo
> > por la
> > normativa vigente.
> >
> > [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
> ************************* AVISO LEGAL *************************
> Este mensaje electrÃ³nico estÃ¡ dirigido exclusivamente a sus
> destinatarios,
> pudiendo contener documentos anexos de carÃ¡cter privado y confidencial.
> Si por error, ha recibido este mensaje y no se encuentra entre los
> destinatarios, por favor, no use, informe, distribuya, imprima o copie su
> contenido por ningÃºn medio. Le rogamos lo comunique al remitente y borre
> completamente el mensaje y sus anexos. El Instituto de Salud Carlos III no
> asume ningÃºn tipo de responsabilidad legal por el contenido de este
> mensaje
> cuando no responda a las funciones atribuidas al remitente del mismo por la
> normativa vigente.
>
>        [[alternative HTML version deleted]]
>
>
>
> ------------------------------
>
> Message: 2
> Date: Thu, 01 Mar 2012 13:03:50 +0100
> From: Francisco Viciana <franciscoj.viciana@juntadeandalucia.es>
> To: r-help-es@r-project.org
> Subject: Re: [R-es] Frecuencias
> Message-ID: <4F4F65A6.3080706@juntadeandalucia.es>
> Content-Type: text/plain
>
> Vuelve a mirar los mensaje anterior y la ayuda de R: ?factor.
>
> factor(x = character(), levels, labels = levels,
>        exclude = NA, ordered = is.ordered(x))
>
> En particular combinando adecuadamente los parámetros: 'levels" y
> "labels" te debe de funcionar perfectamente. La parca información de los
> objetos que suministras en tus mensaje impide especificarte mas detalle.
> Si incluyeras el volcado de str(frech) y levels(frech), quizás
> permitiría poder ofrecerte instrucciones mas detalladas.
>
> El 01/03/2012 12:31, ppueyo@isciii.es escribió:
> > Bueno, he de decir que he mirado los dos mÃ©todos que me habeis
> sugerido, que son muy parecidos; aun asÃ­ no me ha funcionado se queja de
> la longitud diferente de vectores ....
> > El caso es que he pensado otra forma de hacer, mÃ¡s larga, pero creo que
> efectiva, el problema es que tampoco funciona, y no sÃ© porquÃ©, porque lo
> veo muy sencillo (me llevo mal con R) os pongo un poco el caso a ver si
> podÃ©is ver algÃºn fallo de sintaxis y lo entendÃ©is:
> >
> > Tengo 18 grupos de edad (del 1 al 18), pero al pedir las precuencias, es
> posible que haya grupos de edad sin representaciÃ³n, por tanto necesitarÃ­a
> un 0.
> >
> > En este caso:
> >
> > Tabla "frech"
> >
> >      grupo   frecuencia
> > 5  "5"      "1"
> > 6  "6"      "1"
> > 7  "7"      "3"
> > 8  "8"      "2"
> > 9  "9"      "5"
> > 10 "10"  "20"
> > 11 "11"  "20"
> > 12 "12"  "31"
> > 13 "13"  "39"
> > 14 "14"  "54"
> > 15 "15"  "66"
> > 16 "16"  "54"
> > 17 "17"  "23"
> > 18 "18"  "12"
> >
> > AsÃ­ que pensÃ© en una funciÃ³n IF, de tal modo que si el primer grupo
> era igual a "1" , entonces me escibiese la frecuencia en otra columna que
> habÃ­a creado previamente   f99h<-c( )
> > En caso contrario, que me escribiese un "0".
> > Ã0/00ste es el cÃ³digo que he utilizado, y no me hace nada....
> >
> >> if(frech[,1]=="1"){
> > + f99h[1,1]=frech[1,2]
> > + f99h[1,1]<-0}
> >
> > EstÃ¡ claro que si yo pidiera f99h, el primer nÃºmero tendrÃ­a que ser
> un "0", pero no lo hace....
> > y asÃ­ lo tengo que hacer con los 17 grupos restantes; me imagino que
> habrÃ¡ una forma mÃ¡s rÃ¡pida, pero ya os digo que lo del
> "factor(levels......" no me funciona. Â¿Se podrÃ­a iterar la funciÃ³n IF en
> un bucle for? porque ahora son 18 grupos y no me supone mucho tiempo, pero
> cuando tenga 18 grupos divididos en 52 provincias.... me acabarÃ© cortando
> las venas.... jejeje
> >
> > Un saludo, y gracias
> > Pablo
> >
> >
> >
> >
> >
> > ----- Mensaje original -----
> > De: izquierdo
> > Para: r-help-es@r-project.org
> > Enviado: 27/02/2012 14:02:07
> > Asunto: Re: [R-es] Frecuencias
> >
> >
> > Lo primero que tienes que hacer es mirar los levels de tu variable de
> > edades, los que no aparecenahÃ­ no van a aparecer en la tabla, yo harÃ­a
> > una cosa asÃ­:
> >
> >> Edades<- c(15,16,19,20,20)
> >> table(Edades)
> > Edades
> > 15 16 19 20
> > 1 1 1 2
> >> levels(factor(Edades))
> > [1] "15" "16" "19" "20"
> >> lab<- factor(max(Edades):min(Edades))
> >> EdadesFactor<- factor(Edades, levels=lab)
> >> table(EdadesFactor)
> > EdadesFactor
> > 20 19 18 17 16 15
> > 2 1 0 0 1 1
> >
> > Espero que te sirva.
> > Un saludo,
> >
> > Pelayo
> >
> >
> > On Mon, 27 Feb 2012 14:25:04 +0100, ppueyo@isciii.es wrote:
> >> Hola a tod@s:
> >>
> >> Tengo una duda sobre la salida de la tabla de frecuencias de R.
> >>
> >> Estoy utilizando la funciÃ³n table, para que me saque el numero de
> >> casos agrupados por edades; el caso, es que si no hay de una edad,
> >> necesito que me ponga un 0; o un NA, algo para que luego pueda
> >> utilizar los vectores de salida para seguir haciendo operaciones y
> >> que
> >> no se me queje de la longitud, habrÃ­a alguna forma?
> >>
> >> La opciÃ³n que habÃ­a pensado, aunque no se muy bien como llevarla a
> >> cabo, serÃ­a crear un vector de "0" y con funciones "IF", que me lo
> >> reescribiera con las frecuencias sacadas de la funciÃ³n table.
> >>
> >> Un saludo,
> >>
> >> Pablo
> >>
> >>
> >> ************************* AVISO LEGAL *************************
> >> Este mensaje electrÃ³nico estÃ¡ dirigido exclusivamente a sus
> >> destinatarios,
> >> pudiendo contener documentos anexos de carÃ¡cter privado y
> >> confidencial.
> >> Si por error, ha recibido este mensaje y no se encuentra entre los
> >> destinatarios, por favor, no use, informe, distribuya, imprima o
> >> copie su
> >> contenido por ningÃºn medio. Le rogamos lo comunique al remitente y
> >> borre
> >> completamente el mensaje y sus anexos. El Instituto de Salud Carlos
> >> III no
> >> asume ningÃºn tipo de responsabilidad legal por el contenido de este
> >> mensaje
> >> cuando no responda a las funciones atribuidas al remitente del mismo
> >> por la
> >> normativa vigente.
> >>
> >> [[alternative HTML version deleted]]
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> >
> >
> > ************************* AVISO LEGAL *************************
> > Este mensaje electrÃ³nico estÃ¡ dirigido exclusivamente a sus
> destinatarios,
> > pudiendo contener documentos anexos de carÃ¡cter privado y confidencial.
> > Si por error, ha recibido este mensaje y no se encuentra entre los
> > destinatarios, por favor, no use, informe, distribuya, imprima o copie su
> > contenido por ningÃºn medio. Le rogamos lo comunique al remitente y borre
> > completamente el mensaje y sus anexos. El Instituto de Salud Carlos III
> no
> > asume ningÃºn tipo de responsabilidad legal por el contenido de este
> mensaje
> > cuando no responda a las funciones atribuidas al remitente del mismo por
> la
> > normativa vigente.
> >
> >       [[alternative HTML version deleted]]
> >
> >
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
> --
> +--------------------------------------------------------------
> | Francisco J. Viciana Fernández
> | Coordinador del Registro de Población
> | Servicio de Estadísticas Demográficas y Sociales
> | Instituto de Estadística y Cartografía de Andalucía
> | Leonardo Da Vinci, nº 21. Isla de La Cartuja.
> | 41071 SEVILLA.
> | franciscoj.viciana@juntadeandalucia.es
> +--------------------------------------------------------------
>
>
>        [[alternative HTML version deleted]]
>
>
>
> ------------------------------
>
> Message: 3
> Date: Thu, 1 Mar 2012 09:08:31 -0300
> From: Marcuzzi, Javier Rubén    <javier.ruben.marcuzzi@gmail.com>
> To: "izquierdo" <izquierdo@uniovi.es>, <r-help-es@r-project.org>,
>        <ppueyo@isciii.es>
> Subject: Re: [R-es] Frecuencias
> Message-ID: <E7A6A7093EAC454DA97AC2F6E88A63F6@JavierMarcuzzi>
> Content-Type: text/plain; format=flowed; charset="UTF-8";
>        reply-type=original
>
> Intentemos entender su problema, corra el siguiente código, aunque ahora no
> calculemos frecuencias
>
> a <- c()
> b <- c(1,2,3)
> length(a)
> length(b)
>
> Entiendo que usted quiere salidas como las que está viendo pero con
> frecuencias.
>
> Usted tiene algo de 18 edades, podría hacer algo como Edad_2_años <- de la
> forma que le sea más fácil "años =2"
> Sería algo como (prueba esto en R)
>
> Edad_2_años <- c(2,2,2,2,2,2,2,2,2)
> length(Edad_2_años)
>
> Pero tendría que acomodar sus datos y utilizar alguna función tipo lapply,
> doBy, ... o escribir bucles para todas sus provincias.
>
> Javier Marcuzzi
>
>
>
>
>
> -----Mensaje original-----
> From: ppueyo@isciii.es
> Sent: Thursday, March 01, 2012 8:31 AM
> To: izquierdo ; r-help-es@r-project.org
> Subject: Re: [R-es] Frecuencias
>
> Bueno, he de decir que he mirado los dos mÃ©todos que me habeis sugerido,
> que son muy parecidos; aun asÃ­ no me ha funcionado se queja de la longitud
> diferente de vectores ....
> El caso es que he pensado otra forma de hacer, mÃ¡s larga, pero creo que
> efectiva, el problema es que tampoco funciona, y no sÃ© porquÃ©, porque lo
> veo muy sencillo (me llevo mal con R) os pongo un poco el caso a ver si
> podÃ©is ver algÃºn fallo de sintaxis y lo entendÃ©is:
>
> Tengo 18 grupos de edad (del 1 al 18), pero al pedir las precuencias, es
> posible que haya grupos de edad sin representaciÃ³n, por tanto necesitarÃ­a
> un 0.
>
> En este caso:
>
> Tabla "frech"
>
>    grupo   frecuencia
> 5  "5"      "1"
> 6  "6"      "1"
> 7  "7"      "3"
> 8  "8"      "2"
> 9  "9"      "5"
> 10 "10"  "20"
> 11 "11"  "20"
> 12 "12"  "31"
> 13 "13"  "39"
> 14 "14"  "54"
> 15 "15"  "66"
> 16 "16"  "54"
> 17 "17"  "23"
> 18 "18"  "12"
>
> AsÃ­ que pensÃ© en una funciÃ³n IF, de tal modo que si el primer grupo era
> igual a "1" , entonces me escibiese la frecuencia en otra columna que
> habÃ­a
> creado previamente   f99h<-c( )
> En caso contrario, que me escribiese un "0".
> Ã?ste es el cÃ³digo que he utilizado, y no me hace nada....
>
> > if(frech[,1]=="1"){
> + f99h[1,1]=frech[1,2]
> + f99h[1,1]<-0}
>
> EstÃ¡ claro que si yo pidiera f99h, el primer nÃºmero tendrÃ­a que ser un
> "0", pero no lo hace....
> y asÃ­ lo tengo que hacer con los 17 grupos restantes; me imagino que
> habrÃ¡
> una forma mÃ¡s rÃ¡pida, pero ya os digo que lo del "factor(levels......" no
> me funciona. Â¿Se podrÃ­a iterar la funciÃ³n IF en un bucle for? porque
> ahora son 18 grupos y no me supone mucho tiempo, pero cuando tenga 18
> grupos
> divididos en 52 provincias.... me acabarÃ© cortando las venas.... jejeje
>
> Un saludo, y gracias
> Pablo
>
>
>
>
>
> ----- Mensaje original -----
> De: izquierdo
> Para: r-help-es@r-project.org
> Enviado: 27/02/2012 14:02:07
> Asunto: Re: [R-es] Frecuencias
>
>
> Lo primero que tienes que hacer es mirar los levels de tu variable de
> edades, los que no aparecenahÃ­ no van a aparecer en la tabla, yo harÃ­a
> una cosa asÃ­:
>
> > Edades <- c(15,16,19,20,20)
> > table(Edades)
> Edades
> 15 16 19 20
> 1 1 1 2
> > levels(factor(Edades))
> [1] "15" "16" "19" "20"
> > lab <- factor(max(Edades):min(Edades))
> > EdadesFactor <- factor(Edades, levels=lab)
> > table(EdadesFactor)
> EdadesFactor
> 20 19 18 17 16 15
> 2 1 0 0 1 1
>
> Espero que te sirva.
> Un saludo,
>
> Pelayo
>
>
> On Mon, 27 Feb 2012 14:25:04 +0100, ppueyo@isciii.es wrote:
> > Hola a tod@s:
> >
> > Tengo una duda sobre la salida de la tabla de frecuencias de R.
> >
> > Estoy utilizando la funciÃ³n table, para que me saque el numero de
> > casos agrupados por edades; el caso, es que si no hay de una edad,
> > necesito que me ponga un 0; o un NA, algo para que luego pueda
> > utilizar los vectores de salida para seguir haciendo operaciones y
> > que
> > no se me queje de la longitud, habrÃ­a alguna forma?
> >
> > La opciÃ³n que habÃ­a pensado, aunque no se muy bien como llevarla a
> > cabo, serÃ­a crear un vector de "0" y con funciones "IF", que me lo
> > reescribiera con las frecuencias sacadas de la funciÃ³n table.
> >
> > Un saludo,
> >
> > Pablo
> >
> >
> > ************************* AVISO LEGAL *************************
> > Este mensaje electrÃ³nico estÃ¡ dirigido exclusivamente a sus
> > destinatarios,
> > pudiendo contener documentos anexos de carÃ¡cter privado y
> > confidencial.
> > Si por error, ha recibido este mensaje y no se encuentra entre los
> > destinatarios, por favor, no use, informe, distribuya, imprima o
> > copie su
> > contenido por ningÃºn medio. Le rogamos lo comunique al remitente y
> > borre
> > completamente el mensaje y sus anexos. El Instituto de Salud Carlos
> > III no
> > asume ningÃºn tipo de responsabilidad legal por el contenido de este
> > mensaje
> > cuando no responda a las funciones atribuidas al remitente del mismo
> > por la
> > normativa vigente.
> >
> > [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
> ************************* AVISO LEGAL *************************
> Este mensaje electrÃ³nico estÃ¡ dirigido exclusivamente a sus
> destinatarios,
> pudiendo contener documentos anexos de carÃ¡cter privado y confidencial.
> Si por error, ha recibido este mensaje y no se encuentra entre los
> destinatarios, por favor, no use, informe, distribuya, imprima o copie su
> contenido por ningÃºn medio. Le rogamos lo comunique al remitente y borre
> completamente el mensaje y sus anexos. El Instituto de Salud Carlos III no
> asume ningÃºn tipo de responsabilidad legal por el contenido de este
> mensaje
> cuando no responda a las funciones atribuidas al remitente del mismo por la
> normativa vigente.
>
> [[alternative HTML version deleted]]
>
>
>
>
>
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
> ------------------------------
>
> Message: 4
> Date: Thu, 1 Mar 2012 07:08:19 -0500
> From: Jorge I Velez <jorgeivanvelez@gmail.com>
> To: ppueyo@isciii.es
> Cc: R-help-es <r-help-es@r-project.org>
> Subject: Re: [R-es] Frecuencias
> Message-ID:
>        <CAKL8G3HQXUn+9pu45jf07G5C0k17hwAic5aaJKR40ZActGGC9A@mail.gmail.com
> >
> Content-Type: text/plain
>
> Hola Patricio,
>
> Quizas podria servirte lo siguiente:
>
> # datos
> datos <- structure(list(grupo = 5:18, frecuencia = c(1L, 1L, 3L, 2L, 5L,
> 20L, 20L, 31L, 39L, 54L, 66L, 54L, 23L, 12L)), .Names = c("grupo",
> "frecuencia"), class = "data.frame", row.names = c("5", "6",
> "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17",
> "18"))
>
> # funcion
> foo <- function(edad, d){
>    res <- with(d, match(edad, grupo))
>    ifelse(is.na(res), 0, unlist(d[res, 2]))
> }
>
> # ejemplos
> foo(6, datos)
> #[1] 1
> foo(18, datos)
> #[1] 12
> foo(99, datos)
> #[1] 0
>
> Un saludo,
> Jorge.-
>
>
> 2012/3/1 <>
>
> > Bueno, he de decir que he mirado los dos métodos que me habeis sugerido,
> > que son muy parecidos; aun así no me ha funcionado se queja de la
> longitud
> > diferente de vectores ....
> > El caso es que he pensado otra forma de hacer, más larga, pero creo que
> > efectiva, el problema es que tampoco funciona, y no sé porqué, porque lo
> > veo muy sencillo (me llevo mal con R) os pongo un poco el caso a ver si
> > podéis ver algún fallo de sintaxis y lo entendéis:
> >
> > Tengo 18 grupos de edad (del 1 al 18), pero al pedir las precuencias, es
> > posible que haya grupos de edad sin representación, por tanto necesitaría
> > un 0.
> >
> > En este caso:
> >
> > Tabla "frech"
> >
> >    grupo   frecuencia
> > 5  "5"      "1"
> > 6  "6"      "1"
> > 7  "7"      "3"
> > 8  "8"      "2"
> > 9  "9"      "5"
> > 10 "10"  "20"
> > 11 "11"  "20"
> > 12 "12"  "31"
> > 13 "13"  "39"
> > 14 "14"  "54"
> > 15 "15"  "66"
> > 16 "16"  "54"
> > 17 "17"  "23"
> > 18 "18"  "12"
> >
> > Así que pensé en una función IF, de tal modo que si el primer grupo era
> > igual a "1" , entonces me escibiese la frecuencia en otra columna que
> había
> > creado previamente   f99h<-c( )
> > En caso contrario, que me escribiese un "0".
> > Éste es el código que he utilizado, y no me hace nada....
> >
> > > if(frech[,1]=="1"){
> > + f99h[1,1]=frech[1,2]
> > + f99h[1,1]<-0}
> >
> > Está claro que si yo pidiera f99h, el primer número tendría que ser un
> > "0", pero no lo hace....
> > y así lo tengo que hacer con los 17 grupos restantes; me imagino que
> habrá
> > una forma más rápida, pero ya os digo que lo del "factor(levels......" no
> > me funciona. ¿Se podría iterar la función IF en un bucle for? porque
> ahora
> > son 18 grupos y no me supone mucho tiempo, pero cuando tenga 18 grupos
> > divididos en 52 provincias.... me acabaré cortando las venas.... jejeje
> >
> > Un saludo, y gracias
> > Pablo
> >
> >
> >
> >
> >
> > ----- Mensaje original -----
> > De: izquierdo
> > Para: r-help-es@r-project.org
> > Enviado: 27/02/2012 14:02:07
> > Asunto: Re: [R-es] Frecuencias
> >
> >
> > Lo primero que tienes que hacer es mirar los levels de tu variable de
> > edades, los que no aparecenahí no van a aparecer en la tabla, yo haría
> > una cosa así:
> >
> > > Edades <- c(15,16,19,20,20)
> > > table(Edades)
> > Edades
> > 15 16 19 20
> > 1 1 1 2
> > > levels(factor(Edades))
> > [1] "15" "16" "19" "20"
> > > lab <- factor(max(Edades):min(Edades))
> > > EdadesFactor <- factor(Edades, levels=lab)
> > > table(EdadesFactor)
> > EdadesFactor
> > 20 19 18 17 16 15
> > 2 1 0 0 1 1
> >
> > Espero que te sirva.
> > Un saludo,
> >
> > Pelayo
> >
> >
> > On Mon, 27 Feb 2012 14:25:04 +0100, <ppueyo@isciii.es> wrote:
> > > Hola a tod@s:
> > >
> > > Tengo una duda sobre la salida de la tabla de frecuencias de R.
> > >
> > > Estoy utilizando la función table, para que me saque el numero de
> > > casos agrupados por edades; el caso, es que si no hay de una edad,
> > > necesito que me ponga un 0; o un NA, algo para que luego pueda
> > > utilizar los vectores de salida para seguir haciendo operaciones y
> > > que
> > > no se me queje de la longitud, habría alguna forma?
> > >
> > > La opción que había pensado, aunque no se muy bien como llevarla a
> > > cabo, sería crear un vector de "0" y con funciones "IF", que me lo
> > > reescribiera con las frecuencias sacadas de la función table.
> > >
> > > Un saludo,
> > >
> > > Pablo
> > >
> > >
> > > ************************* AVISO LEGAL *************************
> > > Este mensaje electrónico está dirigido exclusivamente a sus
> > > destinatarios,
> > > pudiendo contener documentos anexos de carácter privado y
> > > confidencial.
> > > Si por error, ha recibido este mensaje y no se encuentra entre los
> > > destinatarios, por favor, no use, informe, distribuya, imprima o
> > > copie su
> > > contenido por ningún medio. Le rogamos lo comunique al remitente y
> > > borre
> > > completamente el mensaje y sus anexos. El Instituto de Salud Carlos
> > > III no
> > > asume ningún tipo de responsabilidad legal por el contenido de este
> > > mensaje
> > > cuando no responda a las funciones atribuidas al remitente del mismo
> > > por la
> > > normativa vigente.
> > >
> > > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> >
> >
> > ************************* AVISO LEGAL *************************
> > Este mensaje electrónico está dirigido exclusivamente a sus
> destinatarios,
> > pudiendo contener documentos anexos de carácter privado y confidencial.
> > Si por error, ha recibido este mensaje y no se encuentra entre los
> > destinatarios, por favor, no use, informe, distribuya, imprima o copie su
> > contenido por ningún medio. Le rogamos lo comunique al remitente y borre
> > completamente el mensaje y sus anexos. El Instituto de Salud Carlos III
> no
> > asume ningún tipo de responsabilidad legal por el contenido de este
> mensaje
> > cuando no responda a las funciones atribuidas al remitente del mismo por
> la
> > normativa vigente.
> >
> >        [[alternative HTML version deleted]]
> >
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> >
>
>        [[alternative HTML version deleted]]
>
>
>
> ------------------------------
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
> Fin de Resumen de R-help-es, Vol 37, Envío 2
> ********************************************
>

	[[alternative HTML version deleted]]

