[R-es] problema de tiempo de ejecución con una rutina dentro de un programa de R

Carlos Santos c@r|o@@@nto@@c@m @end|ng |rom gm@||@com
Jue Sep 23 20:00:35 CEST 2021


Gracias Carlos, lo has entendido perfectamente

El punto definido que he puesto, no siempre tendrá esos mismos valores,

La columna V5 no siempre tendrá los mismos valores, pero puede valerme que
siempre tenga el mismo nombre de columna, por si eso puede ayudar, ya que
se puede cambiar el nombre de columna antes de llegar a esa rutina si fuese
necesario para que la rutina funcione mejor



El jue., 23 sept. 2021 19:49, Carlos Ortega <cof using qualityexcellence.es>
escribió:

> Gracias Carlos!
>
> Que no dije nada.... :-).
> Creo que ya lo entiendo pero no he podido meterme con ello..
> A ver si mañana o este fin de semana encuentro un hueco para ver qué se me
> ocurre.
>
> Un par de dudas adicionales que me surgieron al ver el detalle de tu
> respuesta:
>
>    - ¿Para el cálculo se usa siempre esa columna "V5" que es la que tiene
>    las letras?.
>    - Y claro el objetivo al final es que queda solo una letra tras entrar
>       a comparar todas las parejas posibles,¿es así?.
>    - Y eso de la distancia a ese punto definido...
>       - El punto definido ¿es siempre que has indicado? (0.34, 0.66)?.
>
>
> Así, de primeras lo que veo es porqué hacen falta dos bucles o un bucle y
> un while.
> Parece más un proceso recursivo: comienzas con todos los pare de parejas,
> reduces y vuelves a aplicar el proceso de comparación con las que quedan.
> Por eso lo de aclarar la duda del primer punto anterior.
>
> Gracias,
> Carlos.
>
> El mié, 22 sept 2021 a las 18:38, Carlos Santos (<
> carlossantos.csm using gmail.com>) escribió:
>
>> Perdón he puesto 2000 columnas pero quería decir 2000 filas
>>
>> El mié., 22 sept. 2021 18:34, Carlos Santos <carlossantos.csm using gmail.com>
>> escribió:
>>
>>> ok Carlos, pongo un ejemplo con pocos registros a ver si puedo
>>> explicarlo mejor:
>>>
>>> Datos:
>>> V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
>>> 1 63 1 1 145 A 233 1 2 3 0
>>> 2 67 1 4 160 A 286 0 2 2 3
>>> 3 67 2 4 120 B 229 0 2 2 2
>>> 4 37 1 3 130 C 250 0 0 3 0
>>> 5 41 1 2 130 C 204 0 2 1 0
>>> 6 56 2 2 120 A 236 0 0 1 0
>>> 7 62 1 4 140 B 268 0 2 3 2
>>> 8 57 2 4 120 C 354 0 0 1 0
>>> 9 63 2 4 130 A 254 0 2 2 1
>>> 10 53 1 4 140 B 203 1 2 3 0
>>> 11 57 2 4 140 B 192 0 0 2 0
>>> 12 56 1 2 140 A 294 0 2 2 0
>>> 13 56 2 3 130 C 256 1 2 2 1
>>> 14 44 2 2 120 B 263 0 0 1 0
>>> 15 52 2 3 172 B 199 1 0 1 0
>>>
>>> tengo la matriz que sale de V5:
>>> A
>>> B
>>> C
>>>
>>> junto las filas de A con B, y obtengo el punto respecto de V2, y me da
>>> (0.33, 0.67), puesto que V2 tiene dos valores, es un porcentaje en
>>> definitiva
>>> junto las filas de A con C, y se obtiene el punto (0.5, 0.5)
>>> obtengo la distancia euclidea de dichos puntos sobre el punto definido,
>>> supongamos (0.34, 066),  lo que significa que la menor distancia se obtiene
>>> entre A y B, por lo tanto las filas que tienen A en V5 se cambia su valor a
>>> C, y se obtiene la siguiente matriz, donde V5 ya no tiene la A
>>> V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
>>> 1 63 1 1 145 C 233 1 2 3 0
>>> 2 67 1 4 160 C 286 0 2 2 3
>>> 3 67 2 4 120 B 229 0 2 2 2
>>> 4 37 1 3 130 C 250 0 0 3 0
>>> 5 41 1 2 130 C 204 0 2 1 0
>>> 6 56 2 2 120 C 236 0 0 1 0
>>> 7 62 1 4 140 B 268 0 2 3 2
>>> 8 57 2 4 120 C 354 0 0 1 0
>>> 9 63 2 4 130 C 254 0 2 2 1
>>> 10 53 1 4 140 B
>>>
>>

	[[alternative HTML version deleted]]



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