[R-es] Resumen de R-help-es, Vol 151, Envío 14

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


Gracias Patricio, también es buena idea, no he usado nunca C con R, pero es
fácil porque al final es el mismo código de R, cambiando la llamada a la
funcion
Muchísimas gracias



El jue., 23 sept. 2021 20:20, patricio fuenmayor <
patricio.fuenmayor using gmail.com> escribió:

> Yo lo pasaría a data.table ... es más eficiente administrando datos. Y
> analizar si se puede usar furrr.
> Si no funciona, siempres está el buen RCPP
>
> Saludos.
>
>
> El jue, 23 de sep. de 2021 a la(s) 13:11, <r-help-es-request using r-project.org>
> escribió:
>
>> Envíe los mensajes para la lista R-help-es a
>>         r-help-es using r-project.org
>>
>> Para subscribirse o anular su subscripción a través de la WEB
>>         https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>> O por correo electrónico, enviando un mensaje con el texto "help" en
>> el asunto (subject) o en el cuerpo a:
>>         r-help-es-request using r-project.org
>>
>> Puede contactar con el responsable de la lista escribiendo a:
>>         r-help-es-owner using r-project.org
>>
>> Si responde a algún contenido de este mensaje, por favor, edite la
>> linea del asunto (subject) para que el texto sea mas especifico que:
>> "Re: Contents of R-help-es digest...". Además, por favor, incluya en
>> la respuesta sólo aquellas partes del mensaje a las que está
>> respondiendo.
>> Asuntos del día:
>>
>>    1. Re:       problema de tiempo de ejecución con una rutina dentro de
>>       un programa de R (Carlos Santos)
>>    2. Re:       problema de tiempo de ejecución con una rutina dentro de
>>       un programa de R (Carlos Santos)
>>    3. Re:       problema de tiempo de ejecución con una rutina dentro de
>>       un programa de R (Carlos Santos)
>>
>>
>> ---------- Forwarded message ----------
>> From: Carlos Santos <carlossantos.csm using gmail.com>
>> To: Lista R <r-help-es using r-project.org>
>> Cc:
>> Bcc:
>> Date: Thu, 23 Sep 2021 17:10:41 +0200
>> Subject: Re: [R-es] problema de tiempo de ejecución con una rutina dentro
>> de un programa de R
>> Hola de nuevo, nadie tiene alguna idea que pueda ayudarme?, alguna
>> sugerencia posible? cualquier cosa me puede ayudar por favor.
>> muchas gracias
>>
>>
>>
>>
>>
>> El mié, 22 sept 2021 a las 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 203 1 2 3 0
>> > 11 57 2 4 140 B 192 0 0 2 0
>> > 12 56 1 2 140 C 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
>> > en este ejemplo el while seria 2, es decir que se pararía puesto que
>> solo
>> > tengo dos valore en V5
>> >
>> > Evidentemente cuando tengo 100.000 filas con 100 columnas y tengo la
>> > matriz intermedia que he puesto en este ejemplo con letras de 2000
>> filas,
>> > puesto no veo como consumir menos tiempo de ejecucion.
>> >
>> > espero que lo haya podido explicar mejor con este ejemplo.
>> >
>> > gracias de antemano Carlos
>> >
>> > El mié, 22 sept 2021 a las 17:48, Carlos Ortega (<
>> cof using qualityexcellence.es>)
>> > escribió:
>> >
>> >> Vaya me cuesta verlo... :-)...
>> >>
>> >> ¿Puedes poner un ejemplo con números con los diferentes vectores con
>> los
>> >> que partes y cómo vas rellenando esa matriz?
>> >> Y cómo quedaría al final..
>> >>
>> >> Gracias!
>> >> Carlos.
>> >>
>> >> El mié, 22 sept 2021 a las 16:01, Carlos Santos (<
>> >> carlossantos.csm using gmail.com>) escribió:
>> >>
>> >>> jajajaja, perdón no te había entendido, lo siento
>> >>>
>> >>> a ver, de esta forma y para que sea fácil, supongamos esta matriz,
>> >>> evidentemente el problema lo tengo cuando esta matriz es muy grande
>> claro.
>> >>> G1
>> >>> G2
>> >>> G3
>> >>> G4
>> >>> G5
>> >>> G6
>> >>> G7
>> >>> G8
>> >>> G9
>> >>> G10
>> >>> El while lo puse porque quite el for que tenia al principio para no
>> >>> poner muchos FOR anidados, por lo tanto el while va a ejecutar el FOR
>> >>> siguiente 7 veces
>> >>>
>> >>> El FOR lo que hace es ejecutarse 9 veces la primera vez, y agrupa los
>> >>> registros de G1 con cada uno de los otros grupos individualmente,
>> calcula
>> >>> el porcentaje de elementos de cada nuevo grupo respecto a una de las
>> >>> variables del registro, por ejemplo supongamos que la variable tiene 2
>> >>> valores, obtenemos un punto (X,Y) que representa el porcentaje de cada
>> >>> valor que tiene la variable dentro de su nuevo grupo
>> >>> Lo mismo para el resto de nuevos grupos, y se calcula la distancia
>> >>> euclidea entre cada nuevo punto respecto de un punto predefinido.
>> >>>
>> >>> a continuación se haría tomando G2 con el resto descendente, y así
>> >>> sucesivamente hasta que el while ejecute en este ejemplo 7 veces =
>> 10-3
>> >>>
>> >>> Quizas asi este mas claro, Carlos
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> El mié, 22 sept 2021 a las 15:43, Carlos Ortega (<
>> >>> cof using qualityexcellence.es>) escribió:
>> >>>
>> >>>> Hola Carlos,
>> >>>>
>> >>>> Sí, si lo he entendido así.
>> >>>>
>> >>>> Lo que te propongo es que nos cuentes qué quieres hacer con esos dos
>> >>>> bucles o un bucle y un while. Porque a lo mejor se puede plantear
>> otra
>> >>>> aproximación para actualizar cada elemento de la matriz.
>> >>>>
>> >>>> Gracias,
>> >>>> Carlos.
>> >>>>
>> >>>> El mié, 22 sept 2021 a las 15:31, Carlos Santos (<
>> >>>> carlossantos.csm using gmail.com>) escribió:
>> >>>>
>> >>>>> Gracias Carlos,
>> >>>>>
>> >>>>> Si, quizas no lo explique bien, lo fundamental y es donde se tarda
>> >>>>> mucho tiempod e cpu, es el bucle FOR, que tiene que recorrer una
>> matriz
>> >>>>> desde 1 hasta totcluy, entendiendo que la variable totclu puede ser
>> por
>> >>>>> ejemplo 10.000, lo que quiere decir que por cada fila tiene que
>> realizar el
>> >>>>> calculo que he puesto en el FOR que tampoco es demasiado pero
>> logicamente
>> >>>>> tiene que recorrer por ejemplo en este caso 10.000 columnas
>> >>>>> A su vez el while tiene que hacerlo otras 10000 veces menos 3, lo
>> que
>> >>>>> significa que el tiempo empleado hasta completar cada fila de la
>> matriz es
>> >>>>> enorme
>> >>>>>
>> >>>>> no se si he podido explicarlo mejor, es por eso que entiendo que el
>> >>>>> bucle FOR es muy costoso, y aunque he puesto un while bien podia
>> ser un FOR
>> >>>>> dentro de otro FOR, en donde el primero controla las filas y el
>> segundo las
>> >>>>> columnas, pero no se como hacer que el tiempo de cpu sea lo menor
>> posible
>> >>>>>
>> >>>>> El mié, 22 sept 2021 a las 14:56, Carlos Ortega (<
>> >>>>> cof using qualityexcellence.es>) escribió:
>> >>>>>
>> >>>>>> Hola,
>> >>>>>>
>> >>>>>> ¿Por qué no nos dices mejor el problema qué quieres resolver con
>> tus
>> >>>>>> datos/matriz/matrices inicial?
>> >>>>>> Seguramente podamos ver una forma alternativa a utilizar un
>> bucle...
>> >>>>>>
>> >>>>>> En cualquier caso, por si quieres ir viendo como correr ese bucle
>> en
>> >>>>>> paralelo..:
>> >>>>>>
>> >>>>>>    -
>> >>>>>>
>> https://stackoverflow.com/questions/53054366/how-can-i-run-a-for-loop-in-parallel-in-r
>> >>>>>>
>> >>>>>> Saludos,
>> >>>>>> Carlos Ortega
>> >>>>>> www.qualityexcellence.es
>> >>>>>>
>> >>>>>> El mié, 22 sept 2021 a las 13:18, Carlos Santos (<
>> >>>>>> carlossantos.csm using gmail.com>) escribió:
>> >>>>>>
>> >>>>>>> Hola a todos, familia de R
>> >>>>>>>
>> >>>>>>> Tengo un pequeño problema de tiempo de ejecución con una rutina, a
>> >>>>>>> ver si
>> >>>>>>> me pueden echar una mano y ayudarme si es posible, claro.
>> >>>>>>>
>> >>>>>>> La rutina es la siguiente:
>> >>>>>>>
>> >>>>>>> while(totclu != 3){
>> >>>>>>>   matrizF <- matrix(0, nrow = 1, ncol = totclu)
>> >>>>>>>   for (j in 1:totclu) {
>> >>>>>>>     q1 <- c(which(data1$Clus.Multi.FAIRNESS == k2A$Var1[1]),
>> >>>>>>>             which(data1$Clus.Multi.FAIRNESS == k2A$Var1[j]))
>> >>>>>>>     q2 <- nrow(as.data.frame(c(which(data1$Clus.Multi.FAIRNESS ==
>> >>>>>>> k2A$Var1[1]),
>> >>>>>>>                                which(data1$Clus.Multi.FAIRNESS ==
>> >>>>>>> k2A$Var1[j]))))
>> >>>>>>>     observado <- table(data1$VarFC[q1])/q2
>> >>>>>>>     matrizF[i] <- dist(rbind(observado,propuesto),method =
>> >>>>>>> "euclidean")
>> >>>>>>>   }
>> >>>>>>>   matrizF[1] <- 99
>> >>>>>>>   min_observado <- which.min(matrizF)
>> >>>>>>>   q4 <- which(data1$Clus.Multi.FAIRNESS == k2A$Var1[1])
>> >>>>>>>   data1$Clus.Multi.FAIRNESS[q4] <-
>> >>>>>>> as.character(k2A$Var1[min_observado])
>> >>>>>>>   k2A$Freq[min_observado] <- k2A$Freq[min_observado] + k2A$Freq[1]
>> >>>>>>>   k2A <-
>> >>>>>>> as.data.frame(table(as.character(data1$Clus.Multi.FAIRNESS))) %>%
>> >>>>>>> arrange(Freq)
>> >>>>>>>   totclu=nrow(k2A)
>> >>>>>>> }
>> >>>>>>>
>> >>>>>>> El problema fundamental es que la matriz que aparece como k2A es
>> una
>> >>>>>>> matriz
>> >>>>>>> (nxn) lo que significa que puede ser muy grande, por ejemplo
>> >>>>>>> 1000x1000, y
>> >>>>>>> el tiempo que tarda es enorme y no veo como disminuir el tiempo de
>> >>>>>>> ejecución del "for" que pienso que es lo mas duro.
>> >>>>>>>
>> >>>>>>> No se si se puede poner como procesamiento en paralelo en r, pero
>> >>>>>>> tampoco
>> >>>>>>> ser como ponerlo
>> >>>>>>>
>> >>>>>>> Si me pueden echar una mano, les estaré muy agradecido
>> >>>>>>>
>> >>>>>>> muchas gracias de antemano
>> >>>>>>>
>> >>>>>>> Carlos Santos
>> >>>>>>>
>> >>>>>>>         [[alternative HTML version deleted]]
>> >>>>>>>
>> >>>>>>> _______________________________________________
>> >>>>>>> R-help-es mailing list
>> >>>>>>> R-help-es using r-project.org
>> >>>>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> --
>> >>>>>> Saludos,
>> >>>>>> Carlos Ortega
>> >>>>>> www.qualityexcellence.es
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>> --
>> >>>> Saludos,
>> >>>> Carlos Ortega
>> >>>> www.qualityexcellence.es
>> >>>>
>> >>>
>> >>
>> >> --
>> >> Saludos,
>> >> Carlos Ortega
>> >> www.qualityexcellence.es
>> >>
>> >
>>
>>         [[alternative HTML version deleted]]
>>
>>
>>
>>
>>
>> ---------- Forwarded message ----------
>> From: Carlos Santos <carlossantos.csm using gmail.com>
>> To: Carlos Ortega <cof using qualityexcellence.es>
>> Cc: Lista R <r-help-es using r-project.org>
>> Bcc:
>> Date: Thu, 23 Sep 2021 20:00:35 +0200
>> Subject: Re: [R-es] problema de tiempo de ejecución con una rutina dentro
>> de un programa de R
>> 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]]
>>
>>
>>
>>
>>
>> ---------- Forwarded message ----------
>> From: Carlos Santos <carlossantos.csm using gmail.com>
>> To: Carlos Ortega <cof using qualityexcellence.es>
>> Cc: Lista R <r-help-es using r-project.org>
>> Bcc:
>> Date: Thu, 23 Sep 2021 20:08:21 +0200
>> Subject: Re: [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 using 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 using 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 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
>> >>>>>
>> >>>>
>>
>>         [[alternative HTML version deleted]]
>>
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es using r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>

	[[alternative HTML version deleted]]



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