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