juan manuel dias
2023-Mar-20 16:03 UTC
[R-es] str_replace por orden de aparición en una cadena.
muchas gracias!! El mié, 15 mar 2023 a las 6:12, Carlos Ortega (<cof en qualityexcellence.es>) escribió:> Hola, > > Juntandolo todo se puede hacer así... > > #----------------------------- > cadena <- c( > 'si p1 == 1 o 2 == 1,3 si p1 == 1 o 2 = 1,3', > 'si p1 == 3 o 4 == 1 si p1 == 3 o 4 = 1', > 'si p1 == 5 == 0,7 si p1 == 5 = 0,7', > 'si p1 == 5 = 0,7 si p1 == 5 = 0,7', > 'si p1 == 6 == 0 si p1 == 6 = 0', > 'si p1 == 7 == no aplica si p1 == 7 = no aplica' > ) > > # Función para reemplazar el último "==" por un "=" en una cadena > replace_last_equal <- function(s) { > miwords <- unlist(strsplit(s, "==")) > paste0(paste(miwords[1:(length(miwords) - 1)], collapse = '=='), '=', > miwords[length(miwords)]) > } > > # Aplicar la función a cada elemento de la cadena > cadenew <- as.vector( sapply(cadena, replace_last_equal)) > > # Ver el resultado > print(cadenew) > #----------------------------- > > > Gracias, > Carlos Ortega > www.qualityexcellence.es > > El mié, 15 mar 2023 a las 0:28, Carlos Ortega (<cof en qualityexcellence.es>) > escribió: > >> Hola, >> >> Prueba a envolver el strplit con unlist(), así: >> b <- unlist(strsplit(a, "==")) >> >> Pero entendí que lo que quieres es sustituir el último "==" por un "=".... >> >> >> El mar, 14 mar 2023 a las 23:06, juan manuel dias (<juamadias en gmail.com>) >> escribió: >> >>> hola! ,me sirve, pero el tema es que necesito crear tres variables >>> nuevas con el resultado de strsplit....pero me genera una lista y no lo >>> estoy pudiendo combinar con mutate de dplyr.... >>> >>> El mar, 14 mar 2023 a las 7:46, juan manuel dias (<juamadias en gmail.com>) >>> escribió: >>> >>>> Muchas gracias!! Lo pruebo!!! >>>> >>>> El mar., 14 de marzo de 2023 04:55, Proyecto R-UCA <r-uca en uca.es> >>>> escribió: >>>> >>>>> Buenas, >>>>> >>>>> Una opción es partir la cadena usando el == como separador y luego >>>>> recomponerla. >>>>> >>>>> > a <- "p1 == 1 o 2 o p2 == 1 == 1,3" >>>>> > b <- strsplit(a, "==") >>>>> > b <- b[[1]] >>>>> > b >>>>> [1] "p1 " " 1 o 2 o p2 " " 1 " " 1,3" >>>>> > paste0(paste0(b[1:(length(b)-1)], collapse = '=='), '=', >>>>> b[length(b)]) >>>>> [1] "p1 == 1 o 2 o p2 == 1 = 1,3" >>>>> >>>>> Un saludo, Manuel. >>>>> >>>>> El lun, 13-03-2023 a las 19:15 -0300, juan manuel dias escribió: >>>>> >>>>> hola ,muchas gracias! >>>>> no conocía esa librería para los regex...respecto a la pregunta de >>>>> Carlos, puedo tener más de un == dentro de la cadena, por ejemplo así: >>>>> >>>>> así está >>>>> si p1 == 1 o 2 o p2 == 1 == 1,3 >>>>> >>>>> así necesito >>>>> si p1 == 1 o 2 o p2 == 1 = 1,3 >>>>> >>>>> El lun, 13 mar 2023 a las 18:11, Juan Abasolo (<juan.abasolo en ehu.eus>) >>>>> escribió: >>>>> >>>>> Mientras aparezca alguien que sepa guiarte bien, te muestro desde mi >>>>> autodidactez por dónde encararía. Y lo que para mí fue un gran >>>>> descubirmiento: El paquete RegExplain, >>>>> [image: irudia.png] >>>>> (==)([\d, \w]*=[\d, \w]*)$ >>>>> >>>>> Eso captura en dos grupos diferentes todo lo que está desde el final >>>>> hasta el primer igual, más todo lo que sigue hasta en igual doble, que lo >>>>> excluye y lo captura como otro grupo. >>>>> Tenés que conseguir cambiar solamente el primer grupo. Y se me acabó >>>>> la sapienza. >>>>> >>>>> Suerte >>>>> >>>>> >>>>> Hau idatzi du juan manuel dias (juamadias en gmail.com) erabiltzaileak >>>>> (2023 mar. 13(a), al. (20:38)): >>>>> >>>>> Hola, >>>>> >>>>> Tengo una variable string que tiene muchos casos, pero necesito en >>>>> cada uno >>>>> de ellos reemplazar el último "==" por "=". >>>>> >>>>> asi está asi necesito >>>>> si p1 == 1 o 2 == 1,3 si p1 == 1 o 2 = 1,3 >>>>> si p1 == 3 o 4 == 1 si p1 == 3 o 4 = 1 >>>>> si p1 == 5 == 0,7 si p1 == 5 = 0,7 >>>>> si p1 == 5 = 0,7 si p1 == 5 = 0,7 >>>>> si p1 == 6 == 0 si p1 == 6 = 0 >>>>> si p1 == 7 == no aplica si p1 == 7 = no aplica >>>>> >>>>> Muchas gracias!! >>>>> >>>>> Juan. >>>>> >>>>> [[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 >>>>> <https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!VOrNkgAM8xLYFPl5_ay-jsI027eLRwjwkMr-dYzea-A82uQTihgPogjnFoc9QhaJ8smUDai2GjBMY1g$> >>>>> >>>>> >>>>> >>>>> -- >>>>> Juan Abasolo, PhD >>>>> >>>>> Hizkuntzaren eta Literaturaren Didaktika Saila | EUDIA ikerketa taldea >>>>> Bilboko Hezkuntza Fakultatea >>>>> Euskal Herriko Unibertsitatea UPV/EHU >>>>> >>>>> Sarriena auzoa z/g 48940 - Leioa (Bizkaia) >>>>> >>>>> T : (+34) 94 601 7567 >>>>> Telegram: @JuanAbasolo >>>>> Skype : abasolo72 >>>>> >>>>> _______________________________________________ >>>>> R-help-es mailing list >>>>> R-help-es en r-project.org >>>>> >>>>> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!VOrNkgAM8xLYFPl5_ay-jsI027eLRwjwkMr-dYzea-A82uQTihgPogjnFoc9QhaJ8smUDai2GjBMY1g$ >>>>> >>>>> >>>>> _______________________________________________ >>>>> R-help-es mailing list >>>>> R-help-es en r-project.org >>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>>>> >>>> _______________________________________________ >>> 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 >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20230320/35922467/attachment-0001.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: irudia.png Type: image/png Size: 47708 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20230320/35922467/attachment-0001.png>