[R-es] Abreviar nombres ciéntificos

JC Arronte j_arronte en hotmail.com
Mie Ene 14 15:03:35 CET 2015



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]]



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