Hola a tod en 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]]
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 . (<tontito82 en hotmail.com>) escribió:> Hola a tod en 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 en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
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 . (<tontito82 en hotmail.com>) > escribió: > >> Hola a tod en 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 en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >