Carlos Santos
2021-Sep-23 18:08 UTC
[R-es] problema de tiempo de ejecución con una rutina dentro de un programa de R
Exacto, eso es Carlos El jue., 23 sept. 2021 20:04, Carlos Ortega <cof en qualityexcellence.es> escribió:> OK. Gracias. > > Sí, bueno lo del nombre de V5 o el que sea efectivamente da igual, ¿pero > es siempre una única columna por la que hay que agrupar?. > Y luego en esa columna ¿se ha de iterar hasta que quede solo una letra? > (letra o el factor que sea). > > Gracias! > Carlos. > > El jue, 23 sept 2021 a las 20:00, Carlos Santos (< > carlossantos.csm en gmail.com>) escribió: > >> 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 en 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 en 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 en 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 >>>>> >>>>[[alternative HTML version deleted]]