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 . (<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



_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a