Miriam Alzate
2018-Sep-12 11:54 UTC
[R-es] Crear columna en data frame agregando otra y fusionando
No es lo que busco..La idea es crear una variable nueva, por ejemplo "Nueva", que sea la media de "Wordcount" agregada por "Product.Id". Pero quiero que esta variable se a?ada a mi base de datos fusionandose directamente por "Product.Id". Al hacerlo me da este error: Reviews.211216$Adjetives.Product<- aggregate(adj.x ~ Product.Id, data=Reviews.211216, + FUN=mean) Error in `$<-.data.frame`(`*tmp*`, Adjetives.Product, value = list(Product.Id = c("P104006", : replacement has 143 rows, data has 65505 No me deja crear as? directamente la variable. El 12/09/2018 a las 13:45, Jes?s Para Fern?ndez escribi?:> No se si te he entendido muy bien, pero con data.table puedes hacer > algo como esto: > > df <- data.table(df) > df[,.(word.count=mean(variableimportante)),by=word.count] > > UN saludo > Jes?s > ------------------------------------------------------------------------ > *De:* R-help-es <r-help-es-bounces en r-project.org> en nombre de Miriam > Alzate <miriam.alzate en unavarra.es> > *Enviado:* mi?rcoles, 12 de septiembre de 2018 13:38 > *Para:* r-help-es > *Asunto:* [R-es] Crear columna en data frame agregando otra y fusionando > Buenas, > > Necesito crear una variable que viene de agregar otra por la media. El > dataframe tiene 65000 obsrvaciones.Tengo estas variables > > Product.Id (145 diferentes) > > Word.Count > > Review.number > > Necesito agregar la variable Word.Count por Product.Id. Al agregarlo, > tengo un data.frame de 2 variables y 145 observaciones pero en vez de > tener que fusionar despu?s por Product.Id los dos dataframe me gustar?a > saber si hay una forma m?s directa de hacerlo todo en la misma formula y > que agregue Word.count por Product.Id y luego directamente fusione. > > Un saludo > > Miriam > > _______________________________________________ > 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]]
Carlos Ortega
2018-Sep-12 12:08 UTC
[R-es] Crear columna en data frame agregando otra y fusionando
Hola Miriam, df <- data.table(df) df[,.(Nueva=mean(Word.count, na.rm = TRUE)) , by=c("Product.id")] df_out <- as.data.frame(df) Cuando creas "Nueva" en la sentencia anterior, aparece en el dataframe agregada y diferente cada grupo "Product.id". Es una de las ventajas de "data.table". En tu ejemplo, primero agregas y luego la adjuntas al dataframe. Saludos, Carlos Ortega www.qualityexcellence.es El 12 de septiembre de 2018, 13:54, Miriam Alzate <miriam.alzate en unavarra.es> escribió:> No es lo que busco..La idea es crear una variable nueva, por ejemplo > "Nueva", que sea la media de "Wordcount" agregada por "Product.Id". Pero > quiero que esta variable se añada a mi base de datos fusionandose > directamente por "Product.Id". > > Al hacerlo me da este error: > > Reviews.211216$Adjetives.Product<- aggregate(adj.x ~ Product.Id, > data=Reviews.211216, + FUN=mean) Error in `$<-.data.frame`(`*tmp*`, > Adjetives.Product, value = list(Product.Id = c("P104006", : replacement > has 143 rows, data has 65505 No me deja crear así directamente la variable. > > > El 12/09/2018 a las 13:45, Jesús Para Fernández escribió: > > No se si te he entendido muy bien, pero con data.table puedes hacer > > algo como esto: > > > > df <- data.table(df) > > df[,.(word.count=mean(variableimportante)),by=word.count] > > > > UN saludo > > Jesús > > ------------------------------------------------------------------------ > > *De:* R-help-es <r-help-es-bounces en r-project.org> en nombre de Miriam > > Alzate <miriam.alzate en unavarra.es> > > *Enviado:* miércoles, 12 de septiembre de 2018 13:38 > > *Para:* r-help-es > > *Asunto:* [R-es] Crear columna en data frame agregando otra y fusionando > > Buenas, > > > > Necesito crear una variable que viene de agregar otra por la media. El > > dataframe tiene 65000 obsrvaciones.Tengo estas variables > > > > Product.Id (145 diferentes) > > > > Word.Count > > > > Review.number > > > > Necesito agregar la variable Word.Count por Product.Id. Al agregarlo, > > tengo un data.frame de 2 variables y 145 observaciones pero en vez de > > tener que fusionar después por Product.Id los dos dataframe me gustaría > > saber si hay una forma más directa de hacerlo todo en la misma formula y > > que agregue Word.count por Product.Id y luego directamente fusione. > > > > Un saludo > > > > Miriam > > > > _______________________________________________ > > 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 > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Javier Nieto
2018-Sep-12 14:55 UTC
[R-es] Crear columna en data frame agregando otra y fusionando
Hola Miriam La verdad es que desconozco si existe una forma de hacer lo que necesitas. En esos casos, como comentas, los pasos que he visto en varios lugares y con algunos colegas es siempre agregar por separado y luego unirlos con un merge. Por otro lado creo que se podr?a hacer en un solo paso, pero me imagino que no ser?a simple, si alguien conoce una forma sencilla estar?a muy bien. Saludos ________________________________ De: R-help-es <r-help-es-bounces en r-project.org> en nombre de Carlos Ortega <cof en qualityexcellence.es> Enviado: mi?rcoles, 12 de septiembre de 2018 07:08:54 a. m. Para: Miriam Alzate CC: r-help-es Asunto: Re: [R-es] Crear columna en data frame agregando otra y fusionando Hola Miriam, df <- data.table(df) df[,.(Nueva=mean(Word.count, na.rm = TRUE)) , by=c("Product.id")] df_out <- as.data.frame(df) Cuando creas "Nueva" en la sentencia anterior, aparece en el dataframe agregada y diferente cada grupo "Product.id". Es una de las ventajas de "data.table". En tu ejemplo, primero agregas y luego la adjuntas al dataframe. Saludos, Carlos Ortega www.qualityexcellence.es<http://www.qualityexcellence.es> El 12 de septiembre de 2018, 13:54, Miriam Alzate <miriam.alzate en unavarra.es> escribi?:> No es lo que busco..La idea es crear una variable nueva, por ejemplo > "Nueva", que sea la media de "Wordcount" agregada por "Product.Id". Pero > quiero que esta variable se a?ada a mi base de datos fusionandose > directamente por "Product.Id". > > Al hacerlo me da este error: > > Reviews.211216$Adjetives.Product<- aggregate(adj.x ~ Product.Id, > data=Reviews.211216, + FUN=mean) Error in `$<-.data.frame`(`*tmp*`, > Adjetives.Product, value = list(Product.Id = c("P104006", : replacement > has 143 rows, data has 65505 No me deja crear as? directamente la variable. > > > El 12/09/2018 a las 13:45, Jes?s Para Fern?ndez escribi?: > > No se si te he entendido muy bien, pero con data.table puedes hacer > > algo como esto: > > > > df <- data.table(df) > > df[,.(word.count=mean(variableimportante)),by=word.count] > > > > UN saludo > > Jes?s > > ------------------------------------------------------------------------ > > *De:* R-help-es <r-help-es-bounces en r-project.org> en nombre de Miriam > > Alzate <miriam.alzate en unavarra.es> > > *Enviado:* mi?rcoles, 12 de septiembre de 2018 13:38 > > *Para:* r-help-es > > *Asunto:* [R-es] Crear columna en data frame agregando otra y fusionando > > Buenas, > > > > Necesito crear una variable que viene de agregar otra por la media. El > > dataframe tiene 65000 obsrvaciones.Tengo estas variables > > > > Product.Id (145 diferentes) > > > > Word.Count > > > > Review.number > > > > Necesito agregar la variable Word.Count por Product.Id. Al agregarlo, > > tengo un data.frame de 2 variables y 145 observaciones pero en vez de > > tener que fusionar despu?s por Product.Id los dos dataframe me gustar?a > > saber si hay una forma m?s directa de hacerlo todo en la misma formula y > > que agregue Word.count por Product.Id y luego directamente fusione. > > > > Un saludo > > > > Miriam > > > > _______________________________________________ > > 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 > >-- Saludos, Carlos Ortega www.qualityexcellence.es<http://www.qualityexcellence.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]]