Re: [R-es] expresiones regulares
Muchas gracias aunque no era lo que buscaba pq la estructura de los datos es cambiante y no se le puede aplicar una funcion "fija". Al final estoy usando gsub caso a caso. De: Eric Enviado: domingo, 20 de septiembre de 2020 20:41 Para: Carlos Ortega ; Samura . Cc: r-help-es@r-project.org Asunto: Re: [R-es] expresiones regulares Al parecer s�lo hay que eliminar los espacios, no ? On 20-09-20 13:32, Carlos Ortega wrote: > Hola, > > Extraer los tres primeros caracteres de cada cadena se puede hacer as�: > >> library(stringr) >> >> mis_str <- > c('1.3ptd','1.3ptdm','4.4ptdm23j','7.716s','1.4hola','1.4hola.hola','5.5v6','5.5v6sdp','5.5v10sdp') >> res_out <- vector() >> for(i in 1:length(mis_str)) { > + wrd_tmp <- mis_str[i] > + pri_parte <- str_sub(wrd_tmp, 1, 3) > + sec_parte <- str_sub(wrd_tmp, 4, nchar(wrd_tmp)) > + res_tmp <- c(pri_parte,sec_parte) > + res_out <- c(res_out, res_tmp) > + } >> paste0(res_out, collapse = " ") > [1] "1.3 ptd 1.3 ptdm 4.4 ptdm23j 7.7 16s 1.4 hola 1.4 hola.hola 5.5 v6 5.5 > v6sdp 5.5 v10sdp" > Pero es que este es el patr�n claro que veo de primeras. Hay alg�n otro > patr�n m�s... sobre lo que se guarda en "sec_parte", pero siguiendo esta > idea puedes tratarlo. > > Saludos, > Carlos Ortega > www.qualityexcellence.es<http://www.qualityexcellence.es> > > > El dom., 20 sept. 2020 a las 17:43, Samura . () > escribi�: > >> Hola a tod@s >> >> �alquien sabria como convertir estas frases con expresiones regulares? >> >> 1.3ptd -> 1.3 ptd >> 1.3ptdm -> 1.3 ptdm >> 4.4ptdm23j -> 4.4 ptdm 23j >> 7.716s -> 7.7 16s >> 1.4hola -> 1.4 hola >> 1.4hola.hola -> 1.4 hola.hola >> 5.5v6 -> 5.5 v6 >> 5.5v6sdp -> 5.5 v6 sdp >> 5.5v10sdp -> 5.5 v10 sdp >> >> de forma que esta frase >> >> "hola 1.3ptd 1.3ptdm 4.4ptdm23j 7.716s 1.4hola pepe 1.4hola.hola 5.5v6 >> 5.5v6sdp 5.5v10sdp" >> >> >> quedara as� >> >> "hola 1.3 ptd 1.3 ptdm 4.4 ptdm 23j 7.7 16s 1.4 hola pepe 1.4 hola.hola >> 5.5 v6 5.5 v6 sdp 5.5 v10 sdp" >> >> estoy probando con gsub y no doy con la tecla. >> >> Lo mismo hay una forma mas simple de cambiarlo y no usando las expresiones >> regulares. >> >> >> >> [[alternative HTML version deleted]] >> >> ___ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] expresiones regulares
Al parecer sólo hay que eliminar los espacios, no ? On 20-09-20 13:32, Carlos Ortega wrote: Hola, Extraer los tres primeros caracteres de cada cadena se puede hacer así: library(stringr) mis_str <- c('1.3ptd','1.3ptdm','4.4ptdm23j','7.716s','1.4hola','1.4hola.hola','5.5v6','5.5v6sdp','5.5v10sdp') res_out <- vector() for(i in 1:length(mis_str)) { + wrd_tmp <- mis_str[i] + pri_parte <- str_sub(wrd_tmp, 1, 3) + sec_parte <- str_sub(wrd_tmp, 4, nchar(wrd_tmp)) + res_tmp <- c(pri_parte,sec_parte) + res_out <- c(res_out, res_tmp) + } paste0(res_out, collapse = " ") [1] "1.3 ptd 1.3 ptdm 4.4 ptdm23j 7.7 16s 1.4 hola 1.4 hola.hola 5.5 v6 5.5 v6sdp 5.5 v10sdp" Pero es que este es el patrón claro que veo de primeras. Hay algún otro patrón más... sobre lo que se guarda en "sec_parte", pero siguiendo esta idea puedes tratarlo. Saludos, Carlos Ortega www.qualityexcellence.es El dom., 20 sept. 2020 a las 17:43, Samura . () escribió: Hola a tod@s ¿alquien sabria como convertir estas frases con expresiones regulares? 1.3ptd -> 1.3 ptd 1.3ptdm -> 1.3 ptdm 4.4ptdm23j -> 4.4 ptdm 23j 7.716s -> 7.7 16s 1.4hola -> 1.4 hola 1.4hola.hola -> 1.4 hola.hola 5.5v6 -> 5.5 v6 5.5v6sdp -> 5.5 v6 sdp 5.5v10sdp -> 5.5 v10 sdp de forma que esta frase "hola 1.3ptd 1.3ptdm 4.4ptdm23j 7.716s 1.4hola pepe 1.4hola.hola 5.5v6 5.5v6sdp 5.5v10sdp" quedara así "hola 1.3 ptd 1.3 ptdm 4.4 ptdm 23j 7.7 16s 1.4 hola pepe 1.4 hola.hola 5.5 v6 5.5 v6 sdp 5.5 v10 sdp" estoy probando con gsub y no doy con la tecla. Lo mismo hay una forma mas simple de cambiarlo y no usando las expresiones regulares. [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] expresiones regulares
Hola, Extraer los tres primeros caracteres de cada cadena se puede hacer así: > library(stringr) > > mis_str <- c('1.3ptd','1.3ptdm','4.4ptdm23j','7.716s','1.4hola','1.4hola.hola','5.5v6','5.5v6sdp','5.5v10sdp') > > res_out <- vector() > for(i in 1:length(mis_str)) { + wrd_tmp <- mis_str[i] + pri_parte <- str_sub(wrd_tmp, 1, 3) + sec_parte <- str_sub(wrd_tmp, 4, nchar(wrd_tmp)) + res_tmp <- c(pri_parte,sec_parte) + res_out <- c(res_out, res_tmp) + } > > paste0(res_out, collapse = " ") [1] "1.3 ptd 1.3 ptdm 4.4 ptdm23j 7.7 16s 1.4 hola 1.4 hola.hola 5.5 v6 5.5 v6sdp 5.5 v10sdp" > Pero es que este es el patrón claro que veo de primeras. Hay algún otro patrón más... sobre lo que se guarda en "sec_parte", pero siguiendo esta idea puedes tratarlo. Saludos, Carlos Ortega www.qualityexcellence.es El dom., 20 sept. 2020 a las 17:43, Samura . () escribió: > Hola a tod@s > > ¿alquien sabria como convertir estas frases con expresiones regulares? > > 1.3ptd -> 1.3 ptd > 1.3ptdm -> 1.3 ptdm > 4.4ptdm23j -> 4.4 ptdm 23j > 7.716s -> 7.7 16s > 1.4hola -> 1.4 hola > 1.4hola.hola -> 1.4 hola.hola > 5.5v6 -> 5.5 v6 > 5.5v6sdp -> 5.5 v6 sdp > 5.5v10sdp -> 5.5 v10 sdp > > de forma que esta frase > > "hola 1.3ptd 1.3ptdm 4.4ptdm23j 7.716s 1.4hola pepe 1.4hola.hola 5.5v6 > 5.5v6sdp 5.5v10sdp" > > > quedara así > > "hola 1.3 ptd 1.3 ptdm 4.4 ptdm 23j 7.7 16s 1.4 hola pepe 1.4 hola.hola > 5.5 v6 5.5 v6 sdp 5.5 v10 sdp" > > estoy probando con gsub y no doy con la tecla. > > Lo mismo hay una forma mas simple de cambiarlo y no usando las expresiones > regulares. > > > > [[alternative HTML version deleted]] > > ___ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] expresiones regulares
Hola a tod@s �alquien sabria como convertir estas frases con expresiones regulares? 1.3ptd -> 1.3 ptd 1.3ptdm -> 1.3 ptdm 4.4ptdm23j -> 4.4 ptdm 23j 7.716s -> 7.7 16s 1.4hola -> 1.4 hola 1.4hola.hola -> 1.4 hola.hola 5.5v6 -> 5.5 v6 5.5v6sdp -> 5.5 v6 sdp 5.5v10sdp -> 5.5 v10 sdp de forma que esta frase "hola 1.3ptd 1.3ptdm 4.4ptdm23j 7.716s 1.4hola pepe 1.4hola.hola 5.5v6 5.5v6sdp 5.5v10sdp" quedara as� "hola 1.3 ptd 1.3 ptdm 4.4 ptdm 23j 7.7 16s 1.4 hola pepe 1.4 hola.hola 5.5 v6 5.5 v6 sdp 5.5 v10 sdp" estoy probando con gsub y no doy con la tecla. Lo mismo hay una forma mas simple de cambiarlo y no usando las expresiones regulares. [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es