Es algo más mágico que eso, aparentemente. Seguí todos tus pasos y, lo comentado, R se cae. Actualicé tooodos los paquetes y RStudio, y R se cae.
Probé con mis datos (codificados según IPA... masomeno) y... FUNCIONA!!! Ahora tengo que ver si sirve para lo que me propongo... aprendiendo a trabajar con dendogramas y clusters, no para sorpresa tuya ;-) Muchísimas gracias. Hau idatzi du Marcelino de la Cruz Rot ([email protected]) erabiltzaileak (2018 ira. 7, or. (14:13)): > Vaya, qué mala suerte. Yo lo probé en la consola de Windows y funcionó > sin problema. > ¿Tal vez sea por la versión de alineR? La mía es la 1.1.4. > > Saludos > > El 07/09/2018 a las 11:38, Juan Abasolo escribió: > > Me encantaría saber pensar así de una. > > Creo que entiendo bien lo que me decís, pero no lo puedo poner en > > marcha en mi computadora, por algo que no sé qué será. > > > > Cuando llego a: > > > cosa<-aline(w1=x,w2=y) > > En RStudio me dice que R sufrió algo. Probé directamente desde la > > consola linux y también: > > > > > cosa<-aline(w1=x,w2=y) > > *** stack smashing detected ***: /usr/lib/R/bin/exec/R terminated > > Aborted > > > > Supongo que ese es un problema que no tiene nada que ver con el > > original, pero de alguna manera se juntó todo > > > > Hau idatzi du Marcelino de la Cruz Rot ([email protected] > > <mailto:[email protected]>) erabiltzaileak (2018 ira. 7, or. > > (10:33)): > > > > Hola Juan, > > > > # No conozco ninguna función que haga lo que propones, pero no es muy > > difícil implementarlo en R. > > # Suponiendo que estos son tus datos de partida, > > > > x0<- c("cansado", > > "cansadisimo","cansau","reventado","reventao",NA,"canso") > > namesx0<-LETTERS[1:7] > > > > > > # Lo de los NA's deberías resolverlo (eliminarlos) al principio, > > es decir: > > > > ok<-!is.na <http://is.na>(x0) > > x0.ok<-x0[ok] > > namesx0.ok<-namesx0[ok] > > > > > > > > # Una vez eliminados, como aline() calcula distancias entre elementos > > pareados de dos vectores, lo primero que tienes que hacer es > > justamente > > crear esos vectores con todos los valores pareados con todos > > x<- rep(x0.ok, length(x0.ok)) > > y<-rep(x0.ok, each=length(x0.ok)) > > > > # es decir, > > cbind(x,y) > > > > # ahora calculas la distancia aline entre los elementos > > cosa<-aline(w1=x,w2=y) > > > > # y lo formateas coo matriz simétrica > > > > cosa.m<- matrix(cosa, nr=length(x0.ok),nc=length(x0.ok)) > > cosa.m > > > > > > # le pones los nombres a las filas y columnas > > dimnames(cosa.m)<-list(namesx0.ok, namesx0.ok) > > cosa.m > > > > # y lo presentas como matriz de distancias. > > as.dist(cosa.m) > > > > > > > > Aunque ya puestos, ¿porqué no implementarlo como una función?: > > > > > > > > aline.dist<- function(x0, namesx0){ > > require(alineR) > > ok<-!is.na <http://is.na>(x0) > > > > x0.ok<-x0[ok] > > namesx0.ok<-namesx0[ok] > > x<- rep(x0.ok, length(x0.ok)) > > y<-rep(x0.ok, each=length(x0.ok)) > > > > cosa<-aline(w1=x,w2=y) > > > > cosa.m<- matrix(cosa, nr=length(x0.ok),nc=length(x0.ok)) > > dimnames(cosa.m)<-list(namesx0.ok, namesx0.ok) > > return(as.dist(cosa.m)) > > > > } > > > > > > # A ver qué tal: > > > > aline.dist(x0, namesx0) > > > > Hmm, seguro que salen unos dendrogramas muy interesantes ;-) > > > > plot(hclust(aline.dist(x0, namesx0))) > > > > > > > > > > Saludos, > > > > Marcelino > > > > > > El 07/09/2018 a las 8:35, Juan Abasolo escribió: > > > ¡Buenas, listeros! > > > > > > Supongo que lo que planteo es muy básico, pero estoy trabado y > > no lo veo. > > > > > > Tengo una función que da la distancia lingüística ALINE, > > alineR::aline(), > > > pero que no genera matrices. > > > > > > Tengo que hacer matrices de distancias ALINE de unos datos tipo > > esto: > > > > > > A cansado > > > B cansadísimo > > > C cansau > > > D reventado > > > E reventao > > > F NA > > > G canso > > > > > > alineR::aline("cansado", "cansado") > > > # 0 > > > > > > Necesito así, as.dist(miresultado)... > > > A B C D ... > > > A 0 > > > B 0.2 0 > > > C 0.1 0 0 > > > D 0.9 0.89 0 > > > ... > > > > > > No sé si le puedo explicar a la función dist() o a alguna amiga > > suya que > > > method = "ALINE" quiere decir que use la función `aline()`. O si > > tengo que > > > intentar reinventar la rueda, pero con alineR::aline(x). > > > > > > También capaz que pueda evitar que aparezcan los NA sin mellar > > el trabajo. > > > > > > Gracias por la pacencia. > > > > > > > -- > > Marcelino de la Cruz Rot > > Depto. de Biología y Geología > > Física y Química Inorgánica > > Universidad Rey Juan Carlos > > Móstoles España > > > > > > > > -- > > Juan Abasolo > > > > Hizkuntzaren eta Literaturaren Didaktika Saila > > Bilboko Hezkuntza Fakultatea > > Euskal Herriko Unibertsitatea > > UPV/EHU > > > > Sarriena auzoa z/g > > 48940 Leioa > > Bizkaia > > > -- > Marcelino de la Cruz Rot > Depto. de Biología y Geología > Física y Química Inorgánica > Universidad Rey Juan Carlos > Móstoles España > > -- Juan Abasolo Hizkuntzaren eta Literaturaren Didaktika Saila Bilboko Hezkuntza Fakultatea Euskal Herriko Unibertsitatea UPV/EHU Sarriena auzoa z/g 48940 Leioa Bizkaia [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
