Hola a tod en s, Estoy tratando de abreviar nombres ciéntificos pero no me gusta cómo queda usando make.cepnames de la librería vegan. Me gustaría poderlos abreviar así, Hymenocephalus italicus --> H.italicus Merluccius merluccius --> M.merluccius He probado con varias opciones y no consigo dar con ello. Estoy casi seguro de que es algo relativamente sencillo, pero no doy con ello. ¿Alguien podría echarme una mano?. Un saludo y gracias Juan Carlos [[alternative HTML version deleted]]
Estimado Juan Carlos Nuca use make.cepnames, pero creo que el problema o solución depende de como tenga los datos, pienso en lo siguiente, el nombre es una cadena, busca la separación (espacio en blanco), a partir de este toma las dos palabras en forma separadas, a al primera le toma el primer caracter, luego concatena esta con la segunda agregando el punto. Claro, escrito así es fácil, pero depende de como se puedan obtener los datos, o de como están guardados. Por el contrario, si están en una base de datos donde se emplean dos campos, el planteo es sencillo con una consulta sql. Creo que tendría que enviar un listado de cinco nombres de la forma en que los tiene en su computadora para que podamos replicar el problema y aportar un código que de fuese útil. Javier Marcuzzi El 12/01/2015 a las 06:34 p.m., JC Arronte escibió:> Hola a tod en s, > > Estoy tratando de abreviar nombres ci?ntificos pero no me gusta c?mo queda usando make.cepnames de la librer?a vegan. > > Me gustar?a poderlos abreviar as?, > Hymenocephalus italicus --> H.italicus > Merluccius merluccius --> M.merluccius > > He probado con varias opciones y no consigo dar con ello. Estoy casi seguro de que es algo relativamente sencillo, pero no doy con ello. > > ?Alguien podr?a echarme una mano?. > > Un saludo y gracias > > Juan Carlos > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]
Hola Juan Carlos, Quizas lo siguiente pueda serte util: # test R> s <- "Merluccius merluccius" R> strsplit(s, " ") [[1]] [1] "Merluccius" "merluccius" R> strsplit(s, " ")[[1]] [1] "Merluccius" "merluccius" R> s <- strsplit(s, " ")[[1]] R> paste0(substr(s[1], 1, 1), ".", s[2]) [1] "M.merluccius" # funcion convertir <- function(s){ s <- strsplit(s, " ")[[1]] paste0(substr(s[1], 1, 1), ".", s[2]) } convertir <- Vectorize(convertir) s <- c("Merluccius merluccius", "Hymenocephalus italicus") convertir(s) # Merluccius merluccius Hymenocephalus italicus # "M.merluccius" "H.italicus" Saludos, Jorge.- 2015-01-13 8:34 GMT+11:00 JC Arronte <j_arronte en hotmail.com>:> Hola a tod en s, > > Estoy tratando de abreviar nombres ciéntificos pero no me gusta cómo queda > usando make.cepnames de la librería vegan. > > Me gustaría poderlos abreviar así, > Hymenocephalus italicus --> H.italicus > Merluccius merluccius --> M.merluccius > > He probado con varias opciones y no consigo dar con ello. Estoy casi > seguro de que es algo relativamente sencillo, pero no doy con ello. > > ¿Alguien podría echarme una mano?. > > Un saludo y gracias > > Juan Carlos > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
En la linea de lo que comenta Javier, hay una librería que permite el tratamiento de string de modo bastante sencillo y aporta muchas funciones, es la stringr si tienes los datos más o menos adecuadamente dispuestos. Puede que en tu caso funciones como la de str_extract(string, pattern) sea interesante para localizar exactamente el sitio donde está el espacio en blanco o para extraer en 2 componentes los 2 elementos puede usarse str_split(string, pattern, n = Inf) Espero haber ayudado Un saludo, Francisco> Date: Mon, 12 Jan 2015 20:09:06 -0300 > From: javier.ruben.marcuzzi en gmail.com > To: r-help-es en r-project.org > Subject: Re: [R-es] Abreviar nombres ciéntificos > > Estimado Juan Carlos > > Nuca use make.cepnames, pero creo que el problema o solución depende de > como tenga los datos, pienso en lo siguiente, el nombre es una cadena, > busca la separación (espacio en blanco), a partir de este toma las dos > palabras en forma separadas, a al primera le toma el primer caracter, > luego concatena esta con la segunda agregando el punto. Claro, escrito > así es fácil, pero depende de como se puedan obtener los datos, o de > como están guardados. > > Por el contrario, si están en una base de datos donde se emplean dos > campos, el planteo es sencillo con una consulta sql. > > Creo que tendría que enviar un listado de cinco nombres de la forma en > que los tiene en su computadora para que podamos replicar el problema y > aportar un código que de fuese útil. > > Javier Marcuzzi > > > El 12/01/2015 a las 06:34 p.m., JC Arronte escibió: > > Hola a tod en s, > > > > Estoy tratando de abreviar nombres ci?ntificos pero no me gusta c?mo queda usando make.cepnames de la librer?a vegan. > > > > Me gustar?a poderlos abreviar as?, > > Hymenocephalus italicus --> H.italicus > > Merluccius merluccius --> M.merluccius > > > > He probado con varias opciones y no consigo dar con ello. Estoy casi seguro de que es algo relativamente sencillo, pero no doy con ello. > > > > ?Alguien podr?a echarme una mano?. > > > > Un saludo y gracias > > > > Juan Carlos > > > > > > > > [[alternative HTML version deleted]] > > > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]