Hola, ¿Existe alguna forma consistente de estimar el porcentaje de elementos diferentes en dos vectores de caracteres? Mi idea era: b <- c("a","k","p","o","u") a <- c("a","w","p","o","u") table( a %in% b )[ 1 ] * 100 / table( a %in% b )[ 2 ] Un saludo y gracias ! Patricia [[alternative HTML version deleted]]
Hola Patricia, Asumiendo que ambos vectores tienen la misma longitud (como parece ser tu caso), una forma es usando indexacion:> a==b[1] TRUE FALSE TRUE TRUE TRUE> a!=b[1] FALSE TRUE FALSE FALSE FALSE> sum(a==b)[1] 4> sum(a!=b)[1] 1> sum(a!=b)/sum(a==b)[1] 0.25 Otra forma es via los operadores setdiff(), intersetc() y union(). Tambien puedes intentar> mean(a!=b)[1] 0.2 pero esto estima el porcentaje de elementos diferentes considerando todos los elementos, no solo aquellos que son diferentes. Si las longitudes no son diferentes, podrias combinar el operador %in% (o alguna de sus variaciones), pero con sum() en vez de table(), o puedes usar combinaciones de setdiff(). Saludos, Jorge Ivan Velez 2010/10/6 Usuario R <>> Hola, > > ¿Existe alguna forma consistente de estimar el porcentaje de elementos > diferentes en dos vectores de caracteres? > > Mi idea era: > > b <- c("a","k","p","o","u") > a <- c("a","w","p","o","u") > > table( a %in% b )[ 1 ] * 100 / table( a %in% b )[ 2 ] > > Un saludo y gracias ! > > Patricia > > [[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]]
Prueba c = ifelse(a %in% b,1,0) p = sum(c)/100 Un saludo. Olivier -- ____________________________________ Olivier G. Nuñez Email: onunez en iberstat.es Tel : +34 663 03 69 09 Web: http://www.iberstat.es ____________________________________ El 06/10/2010, a las 17:12, Usuario R escribió:> b <- c("a","k","p","o","u") > a <- c("a","w","p","o","u")
Hola, Hay varias librerías enfocadas justamente a comparar listas: - compare - compareGroups - eVenn "compare" además de comparar en global, como es la solución que has propuesto, también compara teniendo en cuenta la posición del elemento en la lista. Saludos, Carlos Ortega. www.qualtyexcellence.es 2010/10/6 Usuario R <r.user.spain@gmail.com>> Hola, > > ¿Existe alguna forma consistente de estimar el porcentaje de elementos > diferentes en dos vectores de caracteres? > > Mi idea era: > > b <- c("a","k","p","o","u") > a <- c("a","w","p","o","u") > > table( a %in% b )[ 1 ] * 100 / table( a %in% b )[ 2 ] > > Un saludo y gracias ! > > Patricia > > [[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]]
¡perdón! Al leer el correo de Jorge me doy cuenta de un error en mi propuesta. Lo correcto sería más bien: c = ifelse(a %in% b,1,0) p = mean(c) -- ____________________________________ Olivier G. Nuñez Email: onunez en iberstat.es Tel : +34 663 03 69 09 Web: http://www.iberstat.es ____________________________________ El 06/10/2010, a las 17:25, Olivier Nuñez escribió:> Prueba > > c = ifelse(a %in% b,1,0) > p = sum(c)/100 > > Un saludo. Olivier > -- ____________________________________ > > Olivier G. Nuñez > Email: onunez en iberstat.es > Tel : +34 663 03 69 09 > Web: http://www.iberstat.es > > ____________________________________ > > > > > El 06/10/2010, a las 17:12, Usuario R escribió: > >> b <- c("a","k","p","o","u") >> a <- c("a","w","p","o","u") > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es