[R-es] organización datos con data.table

Carlos Ortega cof en qualityexcellence.es
Mie Jun 3 11:57:48 CEST 2015


Hola Mari Luz,

Ya continuando con la solución que te propuse, incluyo al final lo que
pides para ordenar...
El resultado es un data.frame ordenado, por Parámetro y por ValAvg (de
mayor a menor).

Para conocer un resumen de lo que se puede hacer con data.table te interesa
tener esto a mano:
blog.datacamp.com/data-table-cheat-sheet/

De todas formas, lo que devulve data.table es un data.frame (y un
data.table) y por tanto como data.frame puedes usar todas las funciones de
R para ordenar que existen. Incluso utilizar otros paquetes (dplyr, sqldf,
etc) que pueden resultarte más intuitivos, aunque no sean tan rápidos...

#----------------------
library(data.table)

datSet <- fread("Set-A.csv")
resOut <- datSet[, .(ValMax=max(Value), ValMin=min(Value),
ValAvg=mean(Value)), by=c("RecordID","Parameter")]
resOut$RecordID <- as.factor(resOut$RecordID)
setkey(resOut, RecordID)
head(datSet)

datOutcome <- fread("Outcomes-A.csv")
datOutcome$RecordID <- as.factor(datOutcome$RecordID)
setkey(datOutcome, RecordID)
head(datOutcome)

#resEnd <- merge(resOut, datOutcome, by="RecordID", all=TRUE,
allow.cartesian=FALSE)
resEnd <- resOut[datOutcome]
head(resEnd)
setkey(resEnd, Parameter)
#Ejemplo para conseguir uno o varios parametros.
myRes <- resEnd[c("NISysABP","NIDiasABP","NIMAP")]
head(myRes)




*#Ordenar por ValAvgsetorder(myRes, Parameter, -ValAvg)head(myRes)*
#----------------------


Saludos,
Carlos Ortega
www.qualityexcellence.es

El 3 de junio de 2015, 11:33, MªLuz Morales <mlzmrls en gmail.com> escribió:

> Hola de nuevo Carlos,
> data.table, aunque eficiente, no es muy trivial para manejar. De los
> mismos archivos Set-A que comentábamos hace unos días, en la pregunta "mi
> script R es muy lento"a la lista...yo hago:
>
> library(data.table)
> datSet <- fread("Set-A.csv")
> datSet2 <- datSet[, .(NumVal=length(Value)), by=c("Parameter", "RecordID")]
>
> Esto me devuelve para cada RecordID una serie de parámetros (Parameter)
> con el número de valores medidos para cada parámetro (NumVal).
>
> Lo que quiero es que me ordene la tabla de forma que para cada RecordID me
> muestre los Parameter ordenados según su NumVal (de mayor a menor).
>
> Probablemente es muy facil, pero ando dándole vueltas y no lo consigo...
>
> Gracias
> Un saludo
>
>
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



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