[R-es] Abreviar nombres ciéntificos
Carlos Ortega
cof en qualityexcellence.es
Mie Ene 14 17:10:52 CET 2015
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]]
Más información sobre la lista de distribución R-help-es