Eric
2011-Dec-13 05:24 UTC
[R-es] Filtrar un data.frame de acuerdo a 2 o mas criterios en un solo paso
Queridos amigos, tengo el siguiente problema que debe ser sencillo solucionar pero como soy nuevo en R : Tengo un data.frame con 12 columnas, 2 de ellas son de tipo FACTOR: "rango de edad" y "sexo". Necesito filtrar el data.frame con esos 2 criterios a la vez. Cuando es un solo criterio he usado lo siguiente: datos20-30 <- datos[datos$gpodeedad=="20a30",10] ... aqui se obtiene un data.frame con la columna 10 de datos de personas en el rango de edad 20-30 * datos : es el data.frame original con toda la informacion * datos20a30 : el data.frame con los datos filtrados que se quiere obtener si ademas quiero que sean solo hombres, usando el vector tipo FACTOR de la columna SEXO, como se podria hacer en un solo paso agregando el criterio a la sintaxis usada ?? en 2 pasos no es dificil, filtrando 2 veces, pero en R debe haber una solucion mas sintetica. Saludos y gracias, Eric. -- Nota: las tildes se han omitido para evitar conflictos con algunos lectores de correo. * Un economista es un experto que sabrá mañana por qué las cosas que predijo ayer no han sucedido hoy (Laurence Peter). * SATYÂT NÂSTI PARO DHARMAH [[alternative HTML version deleted]]
Jorge I Velez
2011-Dec-13 05:28 UTC
[R-es] Filtrar un data.frame de acuerdo a 2 o mas criterios en un solo paso
Hola Eric, Intenta subset(datos, gpodeedad == "20a30" & SEXO =="hombre") Dale una mirada a ?subset. Un saludo, Jorge.- 2011/12/13 Eric <>> Queridos amigos, tengo el siguiente problema que debe ser sencillo > solucionar pero como soy nuevo en R : > > Tengo un data.frame con 12 columnas, 2 de ellas son de tipo FACTOR: "rango > de edad" y "sexo". Necesito filtrar el data.frame con esos 2 criterios a la > vez. Cuando es un solo criterio he usado lo siguiente: > > datos20-30 <- datos[datos$gpodeedad=="20a30",10] ... aqui se obtiene > un data.frame con la columna 10 de datos de personas en el rango de edad > 20-30 > > * datos : es el data.frame original con toda la informacion > * datos20a30 : el data.frame con los datos filtrados que se quiere obtener > > si ademas quiero que sean solo hombres, usando el vector tipo FACTOR de la > columna SEXO, como se podria hacer en un solo paso agregando el criterio a > la sintaxis usada ?? en 2 pasos no es dificil, filtrando 2 veces, pero en R > debe haber una solucion mas sintetica. > > Saludos y gracias, Eric. > > > > > > -- > Nota: las tildes se han omitido para evitar conflictos con algunos lectores > de correo. > > * Un economista es un experto que sabrá mañana por qué las cosas que > predijo > ayer no han sucedido hoy (Laurence Peter). > > * SATYÂT NÂSTI PARO DHARMAH > > [[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]]
Esteban Moro Egido
2011-Dec-13 08:17 UTC
[R-es] Filtrar un data.frame de acuerdo a 2 o mas criterios en un solo paso
Hola Eric Puedes combinar criterios con los operadores lógicos "&" y "|" Lo que quieres hacer sería datos20-30 <- datos[ datos$gpodeedad=="20a30" & datos$sexo =="hombre", 10] Un saludo El 13/12/2011, a las 06:28, Jorge I Velez escribió:> Hola Eric, > > Intenta > > subset(datos, gpodeedad == "20a30" & SEXO =="hombre") > > Dale una mirada a ?subset. > > Un saludo, > Jorge.- > > > 2011/12/13 Eric <> > >> Queridos amigos, tengo el siguiente problema que debe ser sencillo >> solucionar pero como soy nuevo en R : >> >> Tengo un data.frame con 12 columnas, 2 de ellas son de tipo FACTOR: "rango >> de edad" y "sexo". Necesito filtrar el data.frame con esos 2 criterios a la >> vez. Cuando es un solo criterio he usado lo siguiente: >> >> datos20-30 <- datos[datos$gpodeedad=="20a30",10] ... aqui se obtiene >> un data.frame con la columna 10 de datos de personas en el rango de edad >> 20-30 >> >> * datos : es el data.frame original con toda la informacion >> * datos20a30 : el data.frame con los datos filtrados que se quiere obtener >> >> si ademas quiero que sean solo hombres, usando el vector tipo FACTOR de la >> columna SEXO, como se podria hacer en un solo paso agregando el criterio a >> la sintaxis usada ?? en 2 pasos no es dificil, filtrando 2 veces, pero en R >> debe haber una solucion mas sintetica. >> >> Saludos y gracias, Eric. >> >> >> >> >> >> -- >> Nota: las tildes se han omitido para evitar conflictos con algunos lectores >> de correo. >> >> * Un economista es un experto que sabrá mañana por qué las cosas que >> predijo >> ayer no han sucedido hoy (Laurence Peter). >> >> * SATYÂT NÂSTI PARO DHARMAH >> >> [[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
Eric
2011-Dec-13 17:48 UTC
[R-es] Filtrar un data.frame de acuerdo a 2 o mas criterios en un solo paso
Perfecto, gracias a todos por la rapidez de la respuesta, probe las alternativas y funcionaron. Saludos, eric. 2011/12/13 Esteban Moro Egido <emoro@math.uc3m.es>> Hola Eric > > Puedes combinar criterios con los operadores lógicos "&" y "|" > > Lo que quieres hacer sería > > datos20-30 <- datos[ datos$gpodeedad=="20a30" & datos$sexo =="hombre", 10] > > Un saludo > > El 13/12/2011, a las 06:28, Jorge I Velez escribió: > > > Hola Eric, > > > > Intenta > > > > subset(datos, gpodeedad == "20a30" & SEXO =="hombre") > > > > Dale una mirada a ?subset. > > > > Un saludo, > > Jorge.- > > > > > > 2011/12/13 Eric <> > > > >> Queridos amigos, tengo el siguiente problema que debe ser sencillo > >> solucionar pero como soy nuevo en R : > >> > >> Tengo un data.frame con 12 columnas, 2 de ellas son de tipo FACTOR: > "rango > >> de edad" y "sexo". Necesito filtrar el data.frame con esos 2 criterios > a la > >> vez. Cuando es un solo criterio he usado lo siguiente: > >> > >> datos20-30 <- datos[datos$gpodeedad=="20a30",10] ... aqui se > obtiene > >> un data.frame con la columna 10 de datos de personas en el rango de edad > >> 20-30 > >> > >> * datos : es el data.frame original con toda la informacion > >> * datos20a30 : el data.frame con los datos filtrados que se quiere > obtener > >> > >> si ademas quiero que sean solo hombres, usando el vector tipo FACTOR de > la > >> columna SEXO, como se podria hacer en un solo paso agregando el > criterio a > >> la sintaxis usada ?? en 2 pasos no es dificil, filtrando 2 veces, pero > en R > >> debe haber una solucion mas sintetica. > >> > >> Saludos y gracias, Eric. > >> > >> > >> > >> > >> > >> -- > >> Nota: las tildes se han omitido para evitar conflictos con algunos > lectores > >> de correo. > >> > >> * Un economista es un experto que sabrá mañana por qué las cosas que > >> predijo > >> ayer no han sucedido hoy (Laurence Peter). > >> > >> * SATYÂT NÂSTI PARO DHARMAH > >> > >> [[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 > >-- Nota: las tildes se han omitido para evitar conflictos con algunos lectores de correo. * Un economista es un experto que sabrá mañana por qué las cosas que predijo ayer no han sucedido hoy (Laurence Peter). * SATYÂT NÂSTI PARO DHARMAH [[alternative HTML version deleted]]