Estoy en 3.3.0 y "sqldf" lo instala sin problemas... El 23 de junio de 2016, 1:23, Mauricio Monsalvo <m.monsalvo en gmail.com> escribió:> Malas nuevas para mi: > package ?sqldb? is not available (for R version 3.3.0) > ¿Puedo hacer algo más que esperar? No me voy a "bajar" de versión de R. > > El 22 de junio de 2016, 20:02, Mauricio Monsalvo <m.monsalvo en gmail.com> > escribió: > >> Muchas gracias, Carlos. >> Sobre todo por el sqldf, que seguro me ahorre mucho tiempo. La opción que >> se plante de primero d <- table(tips$day) y luego dim(d) me parece menos >> eficiente y cómo que directamente sqldf("select count(distinct day) from >> tips"), pero supongo que esos son gustos! >> También son "cómodas" las líneas: aggregate(subjectid ~ cond, data = dat, >> FUN = function(x) length(unique(x))) o bien tapply(a$subjectid, a$cond, >> function(x) length(unique(x))), pero tienen algo de R que intuitivamente >> nunca me sale... supongo que por no comprender cuándo corresponde el uso de >> function(x). >> ?Adjunto una selección de mis datos en .csv para probar con data.table >> (si lo recomendas para novatos, sigo probando con él).- >> >> >> El 22 de junio de 2016, 19:36, Carlos Ortega <cof en qualityexcellence.es> >> escribió: >> >>> Hola, >>> >>> Estas pueden ser posibles soluciones: >>> >>> >>> http://stackoverflow.com/questions/5459454/counting-unique-items-in-data-frame >>> >>> >>> http://stackoverflow.com/questions/10112177/how-to-count-distinct-entries-within-a-column-of-a-data-frame >>> >>> Y si envías un mínimo conjunto de datos para terminar de entender el >>> conjunto... seguro que encontramos la solución con data.table... >>> >>> Saludos, >>> Carlos. >>> >>> El 23 de junio de 2016, 0:31, Mauricio Monsalvo <m.monsalvo en gmail.com> >>> escribió: >>> >>>> Hola >>>> Necesito algo simple pero no logro resolverlo en R: contar elementos >>>> distintos (unique) pero agrupados. En SQL sería: SELECT Camara, >>>> count(DISTINCT(Laboratorio)) as Lab FROM [datos] GROUP BY Camara. >>>> Puedo hacerlo para toda la matriz de datos >>>> con length(unique(datos$Laboratorio)) pero no logro hacerlo agrupado por >>>> una variable (factor) dada. >>>> Estuve intentando con el paquete data.table pero me parece un tanto >>>> complejo (para mi nivel al menos) y si bien hay funciones equivalentes, >>>> al >>>> menos en lo que alcancé a ver no logró usar el DINTINCT.- >>>> Muchas gracias. >>>> -- >>>> Mauricio >>>> >>>> [[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 >>>> >>> >>> >>> >>> -- >>> Saludos, >>> Carlos Ortega >>> www.qualityexcellence.es >>> >> >> >> >> -- >> Mauricio >> > > > > -- > Mauricio >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Claro, porque es "sqldf" y no "sqldb" :) Gracias de nuevo. Prometo volver a mirar el código antes de molestar en el grupo la próxima vez. El 22 de junio de 2016, 20:27, Carlos Ortega <cof en qualityexcellence.es> escribió:> Estoy en 3.3.0 y "sqldf" lo instala sin problemas... > > El 23 de junio de 2016, 1:23, Mauricio Monsalvo <m.monsalvo en gmail.com> > escribió: > >> Malas nuevas para mi: >> package ?sqldb? is not available (for R version 3.3.0) >> ¿Puedo hacer algo más que esperar? No me voy a "bajar" de versión de R. >> >> El 22 de junio de 2016, 20:02, Mauricio Monsalvo <m.monsalvo en gmail.com> >> escribió: >> >>> Muchas gracias, Carlos. >>> Sobre todo por el sqldf, que seguro me ahorre mucho tiempo. La opción >>> que se plante de primero d <- table(tips$day) y luego dim(d) me parece >>> menos eficiente y cómo que directamente sqldf("select count(distinct >>> day) from tips"), pero supongo que esos son gustos! >>> También son "cómodas" las líneas: aggregate(subjectid ~ cond, data >>> dat, FUN = function(x) length(unique(x))) o bien tapply(a$subjectid, >>> a$cond, function(x) length(unique(x))), pero tienen algo de R que >>> intuitivamente nunca me sale... supongo que por no comprender cuándo >>> corresponde el uso de function(x). >>> ?Adjunto una selección de mis datos en .csv para probar con data.table >>> (si lo recomendas para novatos, sigo probando con él).- >>> >>> >>> El 22 de junio de 2016, 19:36, Carlos Ortega <cof en qualityexcellence.es> >>> escribió: >>> >>>> Hola, >>>> >>>> Estas pueden ser posibles soluciones: >>>> >>>> >>>> http://stackoverflow.com/questions/5459454/counting-unique-items-in-data-frame >>>> >>>> >>>> http://stackoverflow.com/questions/10112177/how-to-count-distinct-entries-within-a-column-of-a-data-frame >>>> >>>> Y si envías un mínimo conjunto de datos para terminar de entender el >>>> conjunto... seguro que encontramos la solución con data.table... >>>> >>>> Saludos, >>>> Carlos. >>>> >>>> El 23 de junio de 2016, 0:31, Mauricio Monsalvo <m.monsalvo en gmail.com> >>>> escribió: >>>> >>>>> Hola >>>>> Necesito algo simple pero no logro resolverlo en R: contar elementos >>>>> distintos (unique) pero agrupados. En SQL sería: SELECT Camara, >>>>> count(DISTINCT(Laboratorio)) as Lab FROM [datos] GROUP BY Camara. >>>>> Puedo hacerlo para toda la matriz de datos >>>>> con length(unique(datos$Laboratorio)) pero no logro hacerlo agrupado >>>>> por >>>>> una variable (factor) dada. >>>>> Estuve intentando con el paquete data.table pero me parece un tanto >>>>> complejo (para mi nivel al menos) y si bien hay funciones >>>>> equivalentes, al >>>>> menos en lo que alcancé a ver no logró usar el DINTINCT.- >>>>> Muchas gracias. >>>>> -- >>>>> Mauricio >>>>> >>>>> [[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 >>>>> >>>> >>>> >>>> >>>> -- >>>> Saludos, >>>> Carlos Ortega >>>> www.qualityexcellence.es >>>> >>> >>> >>> >>> -- >>> Mauricio >>> >> >> >> >> -- >> Mauricio >> > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >-- Mauricio [[alternative HTML version deleted]]
Hola, Hay una forma más sencilla utilizando "table()"...> datIn <- read.table("Datos.csv", sep = ";", header = TRUE) > datIn <- na.omit(datIn) > Cont_df <- as.data.frame(table(datIn$Laboratorio, datIn$Camara)) > Cont_end <- Cont_df[ Cont_df$Freq > 0, ] > Cont_end <- Cont_end[ order(Cont_end$Freq, decreasing = TRUE), ] > names(Cont_end) <- c("Lab", "Camara", "Freq") > row.names(Cont_end) <- NULL > head(Cont_end)Lab Camara Freq 1 LKM COOPERALA 45 2 FRESENIUS KABI COOPERALA 40 3 MICROSULES ARGENTINA COOPERALA 30 4 BIOPROFARMA COOPERALA 27 5 ASPEN COOPERALA 19 6 GOBBI NOVAG CAEMe 17 Saludos, Carlos Ortega www.qualityexcellence.es El 23 de junio de 2016, 1:32, Mauricio Monsalvo <m.monsalvo en gmail.com> escribió:> Claro, porque es "sqldf" y no "sqldb" :) Gracias de nuevo. Prometo volver > a mirar el código antes de molestar en el grupo la próxima vez. > > El 22 de junio de 2016, 20:27, Carlos Ortega <cof en qualityexcellence.es> > escribió: > >> Estoy en 3.3.0 y "sqldf" lo instala sin problemas... >> >> El 23 de junio de 2016, 1:23, Mauricio Monsalvo <m.monsalvo en gmail.com> >> escribió: >> >>> Malas nuevas para mi: >>> package ?sqldb? is not available (for R version 3.3.0) >>> ¿Puedo hacer algo más que esperar? No me voy a "bajar" de versión de R. >>> >>> El 22 de junio de 2016, 20:02, Mauricio Monsalvo <m.monsalvo en gmail.com> >>> escribió: >>> >>>> Muchas gracias, Carlos. >>>> Sobre todo por el sqldf, que seguro me ahorre mucho tiempo. La opción >>>> que se plante de primero d <- table(tips$day) y luego dim(d) me parece >>>> menos eficiente y cómo que directamente sqldf("select count(distinct >>>> day) from tips"), pero supongo que esos son gustos! >>>> También son "cómodas" las líneas: aggregate(subjectid ~ cond, data >>>> dat, FUN = function(x) length(unique(x))) o bien tapply(a$subjectid, >>>> a$cond, function(x) length(unique(x))), pero tienen algo de R que >>>> intuitivamente nunca me sale... supongo que por no comprender cuándo >>>> corresponde el uso de function(x). >>>> ?Adjunto una selección de mis datos en .csv para probar con data.table >>>> (si lo recomendas para novatos, sigo probando con él).- >>>> >>>> >>>> El 22 de junio de 2016, 19:36, Carlos Ortega <cof en qualityexcellence.es> >>>> escribió: >>>> >>>>> Hola, >>>>> >>>>> Estas pueden ser posibles soluciones: >>>>> >>>>> >>>>> http://stackoverflow.com/questions/5459454/counting-unique-items-in-data-frame >>>>> >>>>> >>>>> http://stackoverflow.com/questions/10112177/how-to-count-distinct-entries-within-a-column-of-a-data-frame >>>>> >>>>> Y si envías un mínimo conjunto de datos para terminar de entender el >>>>> conjunto... seguro que encontramos la solución con data.table... >>>>> >>>>> Saludos, >>>>> Carlos. >>>>> >>>>> El 23 de junio de 2016, 0:31, Mauricio Monsalvo <m.monsalvo en gmail.com> >>>>> escribió: >>>>> >>>>>> Hola >>>>>> Necesito algo simple pero no logro resolverlo en R: contar elementos >>>>>> distintos (unique) pero agrupados. En SQL sería: SELECT Camara, >>>>>> count(DISTINCT(Laboratorio)) as Lab FROM [datos] GROUP BY Camara. >>>>>> Puedo hacerlo para toda la matriz de datos >>>>>> con length(unique(datos$Laboratorio)) pero no logro hacerlo agrupado >>>>>> por >>>>>> una variable (factor) dada. >>>>>> Estuve intentando con el paquete data.table pero me parece un tanto >>>>>> complejo (para mi nivel al menos) y si bien hay funciones >>>>>> equivalentes, al >>>>>> menos en lo que alcancé a ver no logró usar el DINTINCT.- >>>>>> Muchas gracias. >>>>>> -- >>>>>> Mauricio >>>>>> >>>>>> [[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 >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Saludos, >>>>> Carlos Ortega >>>>> www.qualityexcellence.es >>>>> >>>> >>>> >>>> >>>> -- >>>> Mauricio >>>> >>> >>> >>> >>> -- >>> Mauricio >>> >> >> >> >> -- >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> > > > > -- > Mauricio >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]