[R-es] reestructurar factores en un dataframe

Carlos J. Gil Bellosta cgb en datanalytics.com
Jue Nov 24 14:58:27 CET 2011


Hola, ¿qué tal?

También se puede utilizar factor (sobre un factor al que le "sobran" niveles):

> hola <- factor( letters[1:10] )
> hola
 [1] a b c d e f g h i j
Levels: a b c d e f g h i j
> hola <- hola[1:5]
> hola
[1] a b c d e
Levels: a b c d e f g h i j
> hola.2 <- factor( hola )
> hola.2
[1] a b c d e
Levels: a b c d e

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com


El día 24 de noviembre de 2011 13:59, Patricio Fuenmayor Viteri
<cpfuenmayor en hotmail.com> escribió:
>
> Gracias... por la ayuda.He utilizado la función 'drop.levels' de la libraría 'gdata', ya que a diferencia de la función 'droplevels' de la librería 'base', ordena las columnasdel objeto, en este caso del data.frame, y para lo que estoy haciendo me es de ayuda.una vez mas gracias por la guía.
>
>> From: luciano.selzer en gmail.com
>> Date: Thu, 24 Nov 2011 09:34:21 -0300
>> Subject: Re: [R-es] reestructurar factores en un dataframe
>> To: javier.ruben.marcuzzi en gmail.com
>> CC: cpfuenmayor en hotmail.com; r-help-es en r-project.org
>>
>> Creo que lo que queres es la función droplevels para eliminar los
>> niveles que no esten más en el data.frame.
>>
>> d02 <- droplevels(d01)
>>
>> Espero que sea de ayuda
>> Luciano
>>
>>
>>
>> El día 23 de noviembre de 2011 23:21, Javier Marcuzzi
>> <javier.ruben.marcuzzi en gmail.com> escribió:
>> > Estimado Patricio Viteri
>> >
>> > ¿Lo que usted busca sería algo así?
>> >
>> > d02 <-
>> > data.frame('AA'=c('a','b','c','d','e'),'BB'=c('aa','bb','cc','dd','ee'),'NN'=1:5,
>> > 'debe_ser'=c('perro','perro','perro','perro','perro'))
>> > str(d02)
>> >
>> > Entendiendo como perro al nombre del filtro.
>> >
>> > Javier Marcuzzi
>> >
>> > 2011/11/23 Patricio Fuenmayor Viteri <cpfuenmayor en hotmail.com>
>> >
>> >>
>> >> Saludos, espero me ayuden.Quisiera saber como puedo reestructurar los
>> >> factores (levels) en un data.frame. Me explico, tengo el siguiente
>> >> ejemplo:d00 <-
>> >> data.frame('AA'=c('a','b','c','d','e'),'BB'=c('aa','bb','cc','dd','ee'),'NN'=1:5)
>> >> str(d00)'data.frame':   5 obs. of  3 variables: $ AA: Factor w/ 5 levels
>> >> "a","b","c","d",..: 1 2 3 4 5 $ BB: Factor w/ 5 levels "aa","bb","cc",..: 1
>> >> 2 3 4 5 $ NN: int  1 2 3 4 5
>> >> d01 <- d00[d00$AA=='a',]str(d01)'data.frame':   1 obs. of  3 variables: $
>> >> AA: Factor w/ 5 levels "a","b","c","d",..: 1 $ BB: Factor w/ 5 levels
>> >> "aa","bb","cc",..: 1 $ NN: int 1
>> >> el d00 tiene 5 factores (levels) tanto en la variable 'AA' como en la
>> >> 'BB', pero cuando realizo el filtro, (también pasa si uso sqldf),la nueva
>> >> data solo debe tener 1 factor (level) ya que estoy haciendo el filtro. Como
>> >> puedo asignar los reales factores al data.frame ??.
>> >> Gracias por la ayuda.
>> >> Patricio.
>> >>        [[alternative HTML version deleted]]
>> >>
>> >>
>> >> _______________________________________________
>> >> R-help-es mailing list
>> >> R-help-es en r-project.org
>> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >>
>> >>
>> >
>> >        [[alternative HTML version deleted]]
>> >
>> >
>> > _______________________________________________
>> > R-help-es mailing list
>> > R-help-es en r-project.org
>> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >
>> >
>
>        [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>



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