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]]

