Hola a todos. Soy un poco torpe manejando cadenas de texto, así que os pido ayuda. Tengo un vector de texto de este tipo datos$tipo [1] m.1.p.Álava m.1.p.Albacete [3] m.2.p.Alicante m.1.p.Almería [5] m.3.p.Asturias m.1.p.Ávila [7] m.1.p.Badajoz m.1.p.Baleares (Illes) [9] m.1.p.Barcelona m.1.p.Burgos [11] m.1.p.Cáceres m.1.p.Cádiz Y quiero extraer el nombre de la provincia. Estoy intentándolo con stringr y usando expresiones regulares, pero no doy con la tecla. Seguro que es fácil He probado algo como require(stringr) str_extract(datos$tipo,"[p][A-Za-z]+") Pero me devuelve todo NA.. ¿Alguna idea o sitio dónde pueda aprender algo sobre expresiones regulares? Saludos
Hola, Una forma de hacerlo es así... Pensando en que el separador de cada palabra es el "." y que la provincia es la cuarta palabra.> cad.ena <- c(+ 'm.1.p.Álava' + ,'m.1.p.Albacete' + ,'m.2.p.Alicante' + ,'m.1.p.Almería' + ,'m.3.p.Asturias' + ,'m.1.p.Ávila' + ,'m.1.p.Badajoz' + ,'m.1.p.Baleares (Illes)' + ,'m.1.p.Barcelona' + ,'m.1.p.Burgos' + ,'m.1.p.Cáceres' + ,'m.1.p.Cádiz' + )> > library(stringr) > prov.incia <- word(cad.ena, 4, sep=fixed(".")) > prov.incia[1] "Álava" "Albacete" "Alicante" [4] "Almería" "Asturias" "Ávila" [7] "Badajoz" "Baleares (Illes)" "Barcelona" [10] "Burgos" "Cáceres" "Cádiz" Saludos, Carlos Ortega www.qualityexcellence.es El 15 de julio de 2013 20:46, Jose Luis Cañadas <canadasreche@gmail.com>escribió:> Hola a todos. > > Soy un poco torpe manejando cadenas de texto, así que os pido ayuda. > Tengo un vector de texto de este tipo > datos$tipo > [1] m.1.p.Álava m.1.p.Albacete > [3] m.2.p.Alicante m.1.p.Almería > [5] m.3.p.Asturias m.1.p.Ávila > [7] m.1.p.Badajoz m.1.p.Baleares (Illes) > [9] m.1.p.Barcelona m.1.p.Burgos > [11] m.1.p.Cáceres m.1.p.Cádiz > > Y quiero extraer el nombre de la provincia. Estoy intentándolo con stringr > y usando expresiones regulares, pero no doy con la tecla. Seguro que es > fácil > > He probado algo como > > require(stringr) > str_extract(datos$tipo,"[p][A-**Za-z]+") > > Pero me devuelve todo NA.. > > ¿Alguna idea o sitio dónde pueda aprender algo sobre expresiones regulares? > > Saludos > > ______________________________**_________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/**listinfo/r-help-es<https://stat.ethz.ch/mailman/listinfo/r-help-es> >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Qué sencillo. Muchas gracias. El 15/07/13 22:37, Carlos Ortega escribió:> cad.ena <- c( > + 'm.1.p.Álava' > + ,'m.1.p.Albacete' > + ,'m.2.p.Alicante' > + ,'m.1.p.Almería' > + ,'m.3.p.Asturias' > + ,'m.1.p.Ávila' > + ,'m.1.p.Badajoz' > + ,'m.1.p.Baleares (Illes)' > + ,'m.1.p.Barcelona' > + ,'m.1.p.Burgos' > + ,'m.1.p.Cáceres' > + ,'m.1.p.Cádiz'
Hola José Luis. Otra opción es usar provincia=substr(datos$tipo,7,99) Un Saludo, Miguel. -----Mensaje original----- De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Jose Luis Cañadas Enviado el: lunes, 15 de julio de 2013 20:47 Para: r-help-es Asunto: [R-es] ayuda con stringr Hola a todos. Soy un poco torpe manejando cadenas de texto, así que os pido ayuda. Tengo un vector de texto de este tipo datos$tipo [1] m.1.p.Álava m.1.p.Albacete [3] m.2.p.Alicante m.1.p.Almería [5] m.3.p.Asturias m.1.p.Ávila [7] m.1.p.Badajoz m.1.p.Baleares (Illes) [9] m.1.p.Barcelona m.1.p.Burgos [11] m.1.p.Cáceres m.1.p.Cádiz Y quiero extraer el nombre de la provincia. Estoy intentándolo con stringr y usando expresiones regulares, pero no doy con la tecla. Seguro que es fácil He probado algo como require(stringr) str_extract(datos$tipo,"[p][A-Za-z]+") Pero me devuelve todo NA.. ¿Alguna idea o sitio dónde pueda aprender algo sobre expresiones regulares? Saludos _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso_confidencialidad.htm