[R-es] Crear columna en data frame agregando otra y fusionando

Javier Nieto m@c_j@vi @ending from hotm@il@com
Mie Sep 12 16:55:25 CEST 2018


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 using r-project.org> en nombre de Carlos Ortega <cof using 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 using 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 using r-project.org> en nombre de Miriam
> > Alzate <miriam.alzate using 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 using r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>         [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es using 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 using r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es