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 . (<tontit...@hotmail.com>) 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