Re: [R-es] que tal comunidad, una pregunta del paquete data.table

2017-01-06 Thread javier.ruben.marcuzzi
Estimado Eric

Creo que es más simple si lo piensa de otra forma, equivalente, yo plantearía 
en tener las filas (para luego buscar la primer columna).

Preguntaría:

Agrupar por columna 3,
A estos
Cuándo el valor máximo de la columna 2.

De esta forma cuándo tenga 40 columnas en lugar de 3 no tendría problemas con 
el algoritmo, solo tendría que seleccionar el valor de la columna que desea 
(porque tendría todas).

Ahora, si leo lo que usted escribe DT[, max(c2), by=c3], iría al mismo 
razonamiento que yo tengo, pero ¿porqué no le funciona?

¿Puede enviar un ejemplo reproducible? Pienso que puede ser que tenga el 
resultado en sus manos, pero no se dio cuenta.

Javier Rubén Marcuzzi

De: eric
Enviado: viernes, 6 de enero de 2017 0:38
Para: Lista R
Asunto: [R-es] que tal comunidad, una pregunta del paquete data.table

si se tiene un data.table (DT), supongamos de 100 filas por 3 columnas 
de datos numericos, como puedo hacer para obtener el correspondiente 
valor de la columna 1 si busco, por ejemplo, el maximo de la columna 2 
agrupado por la columna 3 ?

para buscar el maximo de la columna 2 escribo.

DT[ , max(c2), by=c3 ]

muchas gracias,

saludos, eric.




-- 
Forest Engineer
Master in Environmental and Natural Resource Economics
Ph.D. student in Sciences of Natural Resources at La Frontera University
Member in AguaDeTemu2030, citizen movement for Temuco with green city 
standards for living

Nota: Las tildes se han omitido para asegurar compatibilidad con algunos 
lectores de correo.

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] que tal comunidad, una pregunta del paquete data.table

2017-01-06 Thread Carlos Ortega
Hola,

Una forma de hacerlo es esta:

#--

library(data.table)
set.seed(22)

DT <- data.table( x = rnorm(100), y = rnorm(100), z = sample(1:5, 100,
replace = TRUE))

DT[, Max := max(y), by=z][y == Max]

#--

Que produce este resultado:

> DT[, Max := max(y), by=z][y == Max]
xy z  Max
1: -0.9221536 1.179189 2 1.179189
2:  2.0029422 1.607435 5 1.607435
3:  0.4413632 1.648292 4 1.648292
4:  0.2195311 1.003396 3 1.003396
5: -0.7727382 1.832411 1 1.832411

Saludos,
Carlos Ortega
www.qualityexcellence.es


El 6 de enero de 2017, 4:38, eric  escribió:

> si se tiene un data.table (DT), supongamos de 100 filas por 3 columnas de
> datos numericos, como puedo hacer para obtener el correspondiente valor de
> la columna 1 si busco, por ejemplo, el maximo de la columna 2 agrupado por
> la columna 3 ?
>
> para buscar el maximo de la columna 2 escribo.
>
> DT[ , max(c2), by=c3 ]
>
> muchas gracias,
>
> saludos, eric.
>
>
>
>
> --
> Forest Engineer
> Master in Environmental and Natural Resource Economics
> Ph.D. student in Sciences of Natural Resources at La Frontera University
> Member in AguaDeTemu2030, citizen movement for Temuco with green city
> standards for living
>
> Nota: Las tildes se han omitido para asegurar compatibilidad con algunos
> lectores de correo.
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] que tal comunidad, una pregunta del paquete data.table

2017-01-06 Thread Carlos J. Gil Bellosta
Lo que quieres es un sort y, luego, un tail. Abundando en el ejemplo de
Carlos Ortega,

library(data.table)
set.seed(22)

tmp <- data.table(x = rnorm(100), y = rnorm(100), z = sample(1:5, 100,
replace = TRUE))

setkeyv(tmp, c("z", "y"))
tmp[, tail(.SD, 1), by=z]

Así puedes sacar los N mayores, etc.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com



El 6 de enero de 2017, 4:38, eric  escribió:

> si se tiene un data.table (DT), supongamos de 100 filas por 3 columnas de
> datos numericos, como puedo hacer para obtener el correspondiente valor de
> la columna 1 si busco, por ejemplo, el maximo de la columna 2 agrupado por
> la columna 3 ?
>
> para buscar el maximo de la columna 2 escribo.
>
> DT[ , max(c2), by=c3 ]
>
> muchas gracias,
>
> saludos, eric.
>
>
>
>
> --
> Forest Engineer
> Master in Environmental and Natural Resource Economics
> Ph.D. student in Sciences of Natural Resources at La Frontera University
> Member in AguaDeTemu2030, citizen movement for Temuco with green city
> standards for living
>
> Nota: Las tildes se han omitido para asegurar compatibilidad con algunos
> lectores de correo.
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] que tal comunidad, una pregunta del paquete data.table

2017-01-06 Thread eric

Muchas gracias Carlos, Carlos y Javier, vamos a probar las opciones.

Saludos, Eric.






On 01/06/2017 12:38 PM, Carlos J. Gil Bellosta  wrote:

Lo que quieres es un sort y, luego, un tail. Abundando en el ejemplo de
Carlos Ortega,

library(data.table)
set.seed(22)

tmp <- data.table(x = rnorm(100), y = rnorm(100), z = sample(1:5, 100,
replace = TRUE))

setkeyv(tmp, c("z", "y"))
tmp[, tail(.SD, 1), by=z]

Así puedes sacar los N mayores, etc.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com



El 6 de enero de 2017, 4:38, eric mailto:ericconchamu...@gmail.com>> escribió:

si se tiene un data.table (DT), supongamos de 100 filas por 3
columnas de datos numericos, como puedo hacer para obtener el
correspondiente valor de la columna 1 si busco, por ejemplo, el
maximo de la columna 2 agrupado por la columna 3 ?

para buscar el maximo de la columna 2 escribo.

DT[ , max(c2), by=c3 ]

muchas gracias,

saludos, eric.




--
Forest Engineer
Master in Environmental and Natural Resource Economics
Ph.D. student in Sciences of Natural Resources at La Frontera University
Member in AguaDeTemu2030, citizen movement for Temuco with green
city standards for living

Nota: Las tildes se han omitido para asegurar compatibilidad con
algunos lectores de correo.

___
R-help-es mailing list
R-help-es@r-project.org 
https://stat.ethz.ch/mailman/listinfo/r-help-es





--
Forest Engineer
Master in Environmental and Natural Resource Economics
Ph.D. student in Sciences of Natural Resources at La Frontera University
Member in AguaDeTemu2030, citizen movement for Temuco with green city 
standards for living


Nota: Las tildes se han omitido para asegurar compatibilidad con algunos 
lectores de correo.


___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


[R-es] que tal comunidad, una pregunta del paquete data.table

2017-01-06 Thread patricio fuenmayor
Hola.
Esta es una manera:

require(data.table)
dt <-
data.table(v1=letters[1:30],v2=round(runif(30,max=20)),v3=rep(c("x","y","z"),10))
dt[unlist(dt[,.I[which.max(v2)],by=v3,drop=TRUE][,2])]

Saludos.

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es