Hola a todos, Gracias por las respuestas. Los nombres ciéntificos son los nombres de las columnas de un csv. Usando vuestros comentarios y sugerencias, estoy tratando de "automatizarlo", ya que tengo unas 40 especies. De momento sin mucho éxito por que no consigo dar con la forma de que me abrevie las especies correctamente y mezclo campos La aproximación de Jorge me valdría (y he estado usándola cómo idea), pero al ser bastantes especies, cómo he dicho antes me gustaría usar una función o un bucle. Respondiendo a Javier, mi csv tiene éste aspecto Gadiculus argenteus Gaidropsarus macrophthalmus Malacocephalus laevis Merluccius merluccius Micromesistius poutassou 100P_23 5485.2 0 0 67937.4 21236.2 123P_110 161434.5 2456.1 0 825001.7 456647.8 135P-1840 612275 19306 38 1699749.9 1333721.6 185P-2342 315022.9 3845.6 1161.2 490340.9 550261.6 235P-1284 306261.2 11083.2 9997.7 178061.2 439126.9 Cualquier ayuda será muy bien recibida. Un saludo y gracias Juan Carlos> ------------------------------ > > Message: 2 > Date: Mon, 12 Jan 2015 22:34:51 +0100 > From: JC Arronte <j_arronte en hotmail.com> > To: "r-help-es en r-project.org" <r-help-es en r-project.org> > Subject: [R-es] Abreviar nombres ciéntificos > Message-ID: <DUB131-W126277B43EB70599508B228B430 en phx.gbl> > Content-Type: text/plain; charset="UTF-8" > > Hola a tod en s, > > Estoy tratando de abreviar nombres ci?ificos pero no me gusta c?queda usando make.cepnames de la librer?vegan. > > Me gustar?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?echarme una mano?. > > Un saludo y gracias > > Juan Carlos > > > > [[alternative HTML version deleted]] > > > > ------------------------------ > > Message: 3 > Date: Mon, 12 Jan 2015 20:09:06 -0300 > From: "Marcuzzi, Javier Rubén" <javier.ruben.marcuzzi en gmail.com> > To: r-help-es en r-project.org > Subject: Re: [R-es] Abreviar nombres ciéntificos > Message-ID: <54B45412.6040500 en gmail.com> > Content-Type: text/plain; charset="UTF-8" > > 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]] > > > > ------------------------------ > > Message: 4 > Date: Tue, 13 Jan 2015 10:29:18 +1100 > From: Jorge I Velez <jorgeivanvelez en gmail.com> > To: JC Arronte <j_arronte en hotmail.com> > Cc: "r-help-es en r-project.org" <r-help-es en r-project.org> > Subject: Re: [R-es] Abreviar nombres ciéntificos > Message-ID: > <CAKL8G3Hyw5uA7z_aasmU317JkAiYFyaj8xQuBvidf9RLptCu2w en mail.gmail.com> > Content-Type: text/plain; charset="UTF-8" > > 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?ificos pero no me gusta c?queda > > usando make.cepnames de la librer?vegan. > > > > Me gustar?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?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]] > > > > ------------------------------ > > Message: 5 > Date: Mon, 12 Jan 2015 23:34:09 +0000 > From: Francisco Rodríguez <fjroar en hotmail.com> > To: <"Javier Rub?n\" <javier.ruben.marcuzzi en gmail.com>; > "r-help-es en r-project.org" <r-help-es en r-project.org>"> > Subject: Re: [R-es] Abreviar nombres ciéntificos > Message-ID: <DUB128-W36508EEC6F4ED4DB42D1ABCD430 en phx.gbl> > Content-Type: text/plain; charset="UTF-8" > > 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]]
No veo bien la estructura de tu columna o fila de nombre pero a ver si esto te inspira: > library(stringr) > > cosa <- c("Gadiculus argenteus", "Gaidropsarus macrophthalmus") > cosa2 <- str_split(cosa," ") > cosa3 <- lapply(cosa2, function(x) str_sub(x, 0,c(1,100))) > > sapply(cosa3, function(x) paste(x, collapse=".")) [1] "G.argenteus" "G.macrophthalmus" Saludos, Marcelino El 14/01/2015 a las 15:03, JC Arronte escribió:> > > Hola a todos, > > Gracias por las respuestas. > > Los nombres ci?ntificos son los nombres de las columnas de un csv. Usando vuestros comentarios y sugerencias, estoy tratando de "automatizarlo", ya que tengo unas 40 especies. > > De momento sin mucho ?xito por que no consigo dar con la forma de que me abrevie las especies correctamente y mezclo campos > > La aproximaci?n de Jorge me valdr?a (y he estado us?ndola c?mo idea), pero al ser bastantes especies, c?mo he dicho antes me gustar?a usar una funci?n o un bucle. > > Respondiendo a Javier, mi csv tiene ?ste aspecto > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Gadiculus argenteus > Gaidropsarus macrophthalmus > > > > > > Malacocephalus laevis > > Merluccius merluccius > Micromesistius poutassou > > > > > > > > > > > > > 100P_23 > > > > > 5485.2 > 0 > > > > > > 0 > > 67937.4 > 21236.2 > > > > > > > > > > > > > 123P_110 > > > > > 161434.5 > 2456.1 > > > > > > 0 > > 825001.7 > 456647.8 > > > > > > > > > > > > > 135P-1840 > > > > > 612275 > 19306 > > > > > > 38 > > 1699749.9 > 1333721.6 > > > > > > > > > > > > > 185P-2342 > > > > > 315022.9 > 3845.6 > > > > > > 1161.2 > > 490340.9 > 550261.6 > > > > > > > > > > > > > 235P-1284 > > > > > 306261.2 > 11083.2 > > > > > > 9997.7 > > 178061.2 > 439126.9 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Cualquier ayuda ser? muy bien recibida. > > Un saludo y gracias > > Juan Carlos > >> ------------------------------ >> >> Message: 2 >> Date: Mon, 12 Jan 2015 22:34:51 +0100 >> From: JC Arronte <j_arronte en hotmail.com> >> To: "r-help-es en r-project.org" <r-help-es en r-project.org> >> Subject: [R-es] Abreviar nombres ci?ntificos >> Message-ID: <DUB131-W126277B43EB70599508B228B430 en phx.gbl> >> Content-Type: text/plain; charset="UTF-8" >> >> Hola a tod en s, >> >> Estoy tratando de abreviar nombres ci?ificos pero no me gusta c?queda usando make.cepnames de la librer?vegan. >> >> Me gustar?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?echarme una mano?. >> >> Un saludo y gracias >> >> Juan Carlos >> >> >> >> [[alternative HTML version deleted]] >> >> >> >> ------------------------------ >> >> Message: 3 >> Date: Mon, 12 Jan 2015 20:09:06 -0300 >> From: "Marcuzzi, Javier Rub?n" <javier.ruben.marcuzzi en gmail.com> >> To: r-help-es en r-project.org >> Subject: Re: [R-es] Abreviar nombres ci?ntificos >> Message-ID: <54B45412.6040500 en gmail.com> >> Content-Type: text/plain; charset="UTF-8" >> >> 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]] >> >> >> >> ------------------------------ >> >> Message: 4 >> Date: Tue, 13 Jan 2015 10:29:18 +1100 >> From: Jorge I Velez <jorgeivanvelez en gmail.com> >> To: JC Arronte <j_arronte en hotmail.com> >> Cc: "r-help-es en r-project.org" <r-help-es en r-project.org> >> Subject: Re: [R-es] Abreviar nombres ci?ntificos >> Message-ID: >> <CAKL8G3Hyw5uA7z_aasmU317JkAiYFyaj8xQuBvidf9RLptCu2w en mail.gmail.com> >> Content-Type: text/plain; charset="UTF-8" >> >> 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?ificos pero no me gusta c?queda >>> usando make.cepnames de la librer?vegan. >>> >>> Me gustar?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?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]] >> >> >> >> ------------------------------ >> >> Message: 5 >> Date: Mon, 12 Jan 2015 23:34:09 +0000 >> From: Francisco Rodr?guez <fjroar en hotmail.com> >> To: <"Javier Rub?n\" <javier.ruben.marcuzzi en gmail.com>; >> "r-help-es en r-project.org" <r-help-es en r-project.org>"> >> Subject: Re: [R-es] Abreviar nombres ci?ntificos >> Message-ID: <DUB128-W36508EEC6F4ED4DB42D1ABCD430 en phx.gbl> >> Content-Type: text/plain; charset="UTF-8" >> >> 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 >
Estimado Arronte Si envía una parte del archivo csv (no es necesario tener todos los datos), pero si algunos como para intentar replicar y escribir su problema, leemos el archivo original (algunos datos) y trabajamos sobre eso. Lo que usted copia y pega no nos sirve. Javier Marcuzzi El 14/01/2015 a las 11:03 a.m., JC Arronte escibió:> > Hola a todos, > > Gracias por las respuestas. > > Los nombres ci?ntificos son los nombres de las columnas de un csv. Usando vuestros comentarios y sugerencias, estoy tratando de "automatizarlo", ya que tengo unas 40 especies. > > De momento sin mucho ?xito por que no consigo dar con la forma de que me abrevie las especies correctamente y mezclo campos > > La aproximaci?n de Jorge me valdr?a (y he estado us?ndola c?mo idea), pero al ser bastantes especies, c?mo he dicho antes me gustar?a usar una funci?n o un bucle. > > Respondiendo a Javier, mi csv tiene ?ste aspecto > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Gadiculus argenteus > Gaidropsarus macrophthalmus > > > > > > Malacocephalus laevis > > Merluccius merluccius > Micromesistius poutassou > > > > > > > > > > > > > 100P_23 > > > > > 5485.2 > 0 > > > > > > 0 > > 67937.4 > 21236.2 > > > > > > > > > > > > > 123P_110 > > > > > 161434.5 > 2456.1 > > > > > > 0 > > 825001.7 > 456647.8 > > > > > > > > > > > > > 135P-1840 > > > > > 612275 > 19306 > > > > > > 38 > > 1699749.9 > 1333721.6 > > > > > > > > > > > > > 185P-2342 > > > > > 315022.9 > 3845.6 > > > > > > 1161.2 > > 490340.9 > 550261.6 > > > > > > > > > > > > > 235P-1284 > > > > > 306261.2 > 11083.2 > > > > > > 9997.7 > > 178061.2 > 439126.9 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Cualquier ayuda ser? muy bien recibida. > > Un saludo y gracias > > Juan Carlos > >> ------------------------------ >> >> Message: 2 >> Date: Mon, 12 Jan 2015 22:34:51 +0100 >> From: JC Arronte <j_arronte en hotmail.com> >> To: "r-help-es en r-project.org" <r-help-es en r-project.org> >> Subject: [R-es] Abreviar nombres ci?ntificos >> Message-ID: <DUB131-W126277B43EB70599508B228B430 en phx.gbl> >> Content-Type: text/plain; charset="UTF-8" >> >> Hola a tod en s, >> >> Estoy tratando de abreviar nombres ci?ificos pero no me gusta c?queda usando make.cepnames de la librer?vegan. >> >> Me gustar?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?echarme una mano?. >> >> Un saludo y gracias >> >> Juan Carlos >> >> >> >> [[alternative HTML version deleted]] >> >> >> >> ------------------------------ >> >> Message: 3 >> Date: Mon, 12 Jan 2015 20:09:06 -0300 >> From: "Marcuzzi, Javier Rub?n" <javier.ruben.marcuzzi en gmail.com> >> To: r-help-es en r-project.org >> Subject: Re: [R-es] Abreviar nombres ci?ntificos >> Message-ID: <54B45412.6040500 en gmail.com> >> Content-Type: text/plain; charset="UTF-8" >> >> 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]] >> >> >> >> ------------------------------ >> >> Message: 4 >> Date: Tue, 13 Jan 2015 10:29:18 +1100 >> From: Jorge I Velez <jorgeivanvelez en gmail.com> >> To: JC Arronte <j_arronte en hotmail.com> >> Cc: "r-help-es en r-project.org" <r-help-es en r-project.org> >> Subject: Re: [R-es] Abreviar nombres ci?ntificos >> Message-ID: >> <CAKL8G3Hyw5uA7z_aasmU317JkAiYFyaj8xQuBvidf9RLptCu2w en mail.gmail.com> >> Content-Type: text/plain; charset="UTF-8" >> >> 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?ificos pero no me gusta c?queda >>> usando make.cepnames de la librer?vegan. >>> >>> Me gustar?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?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]] >> >> >> >> ------------------------------ >> >> Message: 5 >> Date: Mon, 12 Jan 2015 23:34:09 +0000 >> From: Francisco Rodr?guez <fjroar en hotmail.com> >> To: <"Javier Rub?n\" <javier.ruben.marcuzzi en gmail.com>; >> "r-help-es en r-project.org" <r-help-es en r-project.org>"> >> Subject: Re: [R-es] Abreviar nombres ci?ntificos >> Message-ID: <DUB128-W36508EEC6F4ED4DB42D1ABCD430 en phx.gbl> >> Content-Type: text/plain; charset="UTF-8" >> >> 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]]
Hola, Si hay mucha variedad en la tipología de nombres, también podrías usar la funcioón "*abbreviate()*" que ofrece posibilidades de parametrización: http://www.inside-r.org/r-doc/base/abbreviate Saludos, Carlos Ortega www.qualityexcellence.es El 14 de enero de 2015, 15:25, Marcelino de la Cruz < marcelino.delacruz en upm.es> escribió:> No veo bien la estructura de tu columna o fila de nombre pero a ver si > esto te inspira: > > > library(stringr) > > > > cosa <- c("Gadiculus argenteus", "Gaidropsarus macrophthalmus") > > cosa2 <- str_split(cosa," ") > > cosa3 <- lapply(cosa2, function(x) str_sub(x, 0,c(1,100))) > > > > sapply(cosa3, function(x) paste(x, collapse=".")) > [1] "G.argenteus" "G.macrophthalmus" > > > > > Saludos, > > Marcelino > > > > El 14/01/2015 a las 15:03, JC Arronte escribió: > >> >> >> Hola a todos, >> >> Gracias por las respuestas. >> >> Los nombres ci?ntificos son los nombres de las columnas de un csv. Usando >> vuestros comentarios y sugerencias, estoy tratando de "automatizarlo", ya >> que tengo unas 40 especies. >> >> De momento sin mucho ?xito por que no consigo dar con la forma de que me >> abrevie las especies correctamente y mezclo campos >> >> La aproximaci?n de Jorge me valdr?a (y he estado us?ndola c?mo idea), >> pero al ser bastantes especies, c?mo he dicho antes me gustar?a usar una >> funci?n o un bucle. >> >> >> Respondiendo a Javier, mi csv tiene ?ste aspecto >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> Gadiculus argenteus >> Gaidropsarus macrophthalmus >> >> >> >> >> >> Malacocephalus laevis >> >> Merluccius merluccius >> Micromesistius poutassou >> >> >> >> >> >> >> >> >> >> >> >> >> 100P_23 >> >> >> >> >> 5485.2 >> 0 >> >> >> >> >> >> 0 >> >> 67937.4 >> 21236.2 >> >> >> >> >> >> >> >> >> >> >> >> >> 123P_110 >> >> >> >> >> 161434.5 >> 2456.1 >> >> >> >> >> >> 0 >> >> 825001.7 >> 456647.8 >> >> >> >> >> >> >> >> >> >> >> >> >> 135P-1840 >> >> >> >> >> 612275 >> 19306 >> >> >> >> >> >> 38 >> >> 1699749.9 >> 1333721.6 >> >> >> >> >> >> >> >> >> >> >> >> >> 185P-2342 >> >> >> >> >> 315022.9 >> 3845.6 >> >> >> >> >> >> 1161.2 >> >> 490340.9 >> 550261.6 >> >> >> >> >> >> >> >> >> >> >> >> >> 235P-1284 >> >> >> >> >> 306261.2 >> 11083.2 >> >> >> >> >> >> 9997.7 >> >> 178061.2 >> 439126.9 >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> Cualquier ayuda ser? muy bien recibida. >> >> Un saludo y gracias >> >> Juan Carlos >> >> ------------------------------ >>> >>> Message: 2 >>> Date: Mon, 12 Jan 2015 22:34:51 +0100 >>> From: JC Arronte <j_arronte en hotmail.com> >>> To: "r-help-es en r-project.org" <r-help-es en r-project.org> >>> Subject: [R-es] Abreviar nombres ci?ntificos >>> Message-ID: <DUB131-W126277B43EB70599508B228B430 en phx.gbl> >>> Content-Type: text/plain; charset="UTF-8" >>> >>> Hola a tod en s, >>> >>> Estoy tratando de abreviar nombres ci?ificos pero no me gusta c?queda >>> usando make.cepnames de la librer?vegan. >>> >>> Me gustar?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?echarme una mano?. >>> >>> Un saludo y gracias >>> >>> Juan Carlos >>> >>> >>> >>> [[alternative HTML version deleted]] >>> >>> >>> >>> ------------------------------ >>> >>> Message: 3 >>> Date: Mon, 12 Jan 2015 20:09:06 -0300 >>> From: "Marcuzzi, Javier Rub?n" <javier.ruben.marcuzzi en gmail.com> >>> To: r-help-es en r-project.org >>> Subject: Re: [R-es] Abreviar nombres ci?ntificos >>> Message-ID: <54B45412.6040500 en gmail.com> >>> Content-Type: text/plain; charset="UTF-8" >>> >>> 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]] >>> >>> >>> >>> ------------------------------ >>> >>> Message: 4 >>> Date: Tue, 13 Jan 2015 10:29:18 +1100 >>> From: Jorge I Velez <jorgeivanvelez en gmail.com> >>> To: JC Arronte <j_arronte en hotmail.com> >>> Cc: "r-help-es en r-project.org" <r-help-es en r-project.org> >>> Subject: Re: [R-es] Abreviar nombres ci?ntificos >>> >>> Message-ID: >>> <CAKL8G3Hyw5uA7z_aasmU317JkAiYFyaj8xQuBvidf9RLp >>> tCu2w en mail.gmail.com> >>> Content-Type: text/plain; charset="UTF-8" >>> >>> 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?ificos pero no me gusta c?queda >>>> usando make.cepnames de la librer?vegan. >>>> >>>> Me gustar?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?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]] >>> >>> >>> >>> ------------------------------ >>> >>> Message: 5 >>> Date: Mon, 12 Jan 2015 23:34:09 +0000 >>> From: Francisco Rodr?guez <fjroar en hotmail.com> >>> To: <"Javier Rub?n\" <javier.ruben.marcuzzi en gmail.com>; >>> "r-help-es en r-project.org" <r-help-es en r-project.org>"> >>> Subject: Re: [R-es] Abreviar nombres ci?ntificos >>> Message-ID: <DUB128-W36508EEC6F4ED4DB42D1ABCD430 en phx.gbl> >>> Content-Type: text/plain; charset="UTF-8" >>> >>> 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 >> >> > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]