Aunque no entiendo el objetivo final, te apunto un par de cosas, por si te
sirven.
Primero probaría lo que te dije de usar data.table y tratar de vectorizar lo
máximo.
Luego puedes probar algo así mediante el tidyverse:
tu_dataframe %>%
rowwise(var) %>%
mutate(maximo =
Si puedes comentar la lógica de f5 (caso en el que haya varios valores
máximos), es que no la termino de entender...
Gracias,
Carlos.
El lun, 14 dic 2020 a las 12:25, Carlos Santos ()
escribió:
> gracias por tus comentarios.
>
> lo que dices es asi, excepto cuando hay varios máximos iguales
gracias por tus comentarios.
lo que dices es asi, excepto cuando hay varios máximos iguales entonces se
ejecuta f5 para saber cual de ellos es el elegido, y a continuación se hace
lo mismo que has puesto en la frase, es decir elegir el valor de la columna
var que ocupa dicha posición del elegido
Te quería echar una mano pero no veo el objetivo del proceso.
A ver si lo voy entendiendo: "Supongamos que tenemos esta matriz, se quiere
conseguir para el mayor valor por fila tomar el valor de la posición que ocupa
la primera columna "Var" en base a la columna elegida y si hay varios valores
gracias Emilio por tu ayuda, la selección es por fila, no por variable
He intentado discriminar cuando solo encuentra una posición en la fila que
es el máximo, pero el ahorro de tiempo no es mucho aunque algo es algo
Creo que el tiempo se consume en la parte del ELSE, y aunque entiendo que
se
Hola,
Para la primera parte (seleccionar los valores más altos de una variable) yo
usaría dplyr::slice_max(). Creo que eso debería ser rápido y con el filtro
hecho lo demás debería ser trivial. Si he entendido bien el problema.
Un saludo,
Emilio
> El 13 dic 2020, a las 15:31, Carlos Santos
Hola Carlos,
Vaya, lo siento pero creo que me sigue faltando algo para entenderlo todo...
1. Tienes una primera matriz en la que por fila tienes que elegir la
columna en la que se produce el máximo.
2. Pero si hay dos/o varios valores de máximo, tienes que coger el valor de
"Var" de esa primera
>
> Perdón Carlos, con las prisas se me olvidó por completo añadir lo que
> faltaba, tienes toda la razón
>
> Supongamos que tenemos esta matriz, se quiere conseguir para el mayor
> valor por fila tomar el valor de la posición que ocupa la primera
> columna "Var" en base a la columna elegida y si
Perdón Carlos, con las prisas se me olvidó por completo añadir lo que
faltaba, tienes toda la razón
Supongamos que tenemos esta matriz, se quiere conseguir para el mayor valor
por fila tomar el valor de la posición que ocupa la primera columna "Var"
en base a la columna elegida y si hay varios
Hola,
Mejor si pones un ejemplo de tu matriz y cuentas lo que quieres hacer...
El enfoque puede ser muy diferente al que has planteado.
Gracias,
Calros Ortega
www.qualityexcellence.es
El dom, 13 dic 2020 a las 12:33, Carlos Santos ()
escribió:
> Buen dia,
>
> Tengo un problema cuando ejecuto
Buen dia,
Tengo un problema cuando ejecuto la siguiente rutina, porque con una matriz
muy grande el tiempo de ejecución se va a bastantes horas.
Cualquier idea para mejorarlo y reducir significativamente el tiempo,
estaría muy agradecido
Muchas gracias por vuestra ayuda
11 matches
Mail list logo