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]]