[R-es] reemplazar valores en texto según condiciones

Proyecto R-UCA r-uc@ @end|ng |rom uc@@e@
Jue Mar 9 14:58:33 CET 2023


Buenas,

Se me hace raro que la función no admita un parámetro para eso.

Una opción es hacerlo en dos pasos:
P1: Reemplaza p10, p20, ... por algo como q10, q20, ...
P2: Haz el reemplazo que quieres.

Igualmente puedes hacer el reemplazo que haces y en un segundo paso reemplazar p10_integra_datos por p10_cuales_rep, ...

Un saludo, Manuel.

El jue, 09-03-2023 a las 10:20 -0300, juan manuel dias escribió:
> Hola,
> Algo que me está pasando con esta función es lo siguiente:
> A "p1" lo tengo que reemplazar por "p1_integra_datos" y a "p10" por
> "p10_cuales_rep", pero como p10 contiene p1, y así pasa con otras preguntas
> (p2 y p20, por ejemplo),
> me los reemplaza en ambas, cuándo lo que busco es otra cosa.
> 
> reglas$condicion_final <- stri_replace_all_fixed(reglas$condicion_minus,
> c("p1","p2","p3","p4","p5","p6","p7","p8","p9","p10"),
> c("p1_integra_datos","p2_recop_dat","p3_como_recop","p4_bases_prop","p5_cuales_bases",
> "p6_cuanto_integ_dat","p7_tec_integr_dat","p8_documen_pol_int","p9_report_dat","p10_cuales_rep"),
> vectorize_all = FALSE)
> 
> Se les ocurre como resolverlo, estoy agregando un guión bajo después de
> cada pregunta p1_ p10_ para que esto no pase, pero no se me ocurre
> como hacerlo en el código.
> 
> Muchas gracias! Juan.
> 
> El mar, 7 mar 2023 a las 14:11, Carlos Ortega (<cof using qualityexcellence.es>)
> escribió:
> 
> > Hola,
> > 
> > Dentro de la librería "stringi" tienes la posibilidad de hacer lo que
> > quieres de forma vectorizada y super eficiente.
> > De esta forma..:
> > 
> > library(stringi)
> > texto_nuevo <- stri_replace_all_fixed(texto, c('p1', 'p2'),
> > c('p1_integra_datos', 'p2_recop_dat'), vectorize_all = FALSE)
> > 
> > Gracias,
> > Carlos Ortega
> > https://urldefense.com/v3/__http://www.qualityexcellence.es__;!!D9dNQwwGXtA!SO5aun-Yamxtje74i5V9XQrQWI1Q_2DNWSIHAcTX9KKrRMnoOhf63fSSytvNHICE1skDvn91OxPAun4$
> >  
> > 
> > El mar, 7 mar 2023 a las 18:04, juan manuel dias (<juamadias using gmail.com>)
> > escribió:
> > 
> > > Hola, como andan! Espero que bien!
> > > Tengo dos bases, A) tiene una variable texto en la que deseo reemplazar
> > > ciertas partes y B) tengo las condiciones para cambiar ese texto de la
> > > base
> > > A.
> > > 
> > > Base A
> > > 
> > > texto
> > > si p1 = 1 o 2 = 1,3
> > > si p1 = 3 o 4 = 1
> > > si p1 = 5 = 0,7
> > > si p1 = 5 = 0,7
> > > si p1 = 6 = 0
> > > si p1 = 7 = "no aplica"
> > > si p2 = 1 & p3 = 1 = 0,5
> > > si p2 = 1 & p3 = 2 = 0,7
> > > si p2 = 1 & p3 = 4 o 3 = 1
> > > si p2 = 1 & p3 = 5 = 0,5
> > > si p2 = 1 & p3 = 6 = 0,5
> > > si p2 = 2 = 0
> > > si p2 = 3 = 0
> > > si p2 = 4 = no aplica
> > > Base B
> > > 
> > > texto_a_reemplazar_en_base_A texto_final_en_A
> > > p1 p1_integra_datos
> > > p2 p2_recop_dat
> > > 
> > > Lo estoy haciendo con condiciones IF ELSE pero se me hace un código muy
> > > largo.
> > > Estoy probando de armar un for que recorra base A y lo reemplace por el
> > > texto que está en Base B.
> > > 
> > > Si alguno se le ocurre más que agradecido!
> > > 
> > > Gracias! Juan.
> > > 
> > >         [[alternative HTML version deleted]]
> > > 
> > > _______________________________________________
> > > R-help-es mailing list
> > > R-help-es using r-project.org
> > > https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!SO5aun-Yamxtje74i5V9XQrQWI1Q_2DNWSIHAcTX9KKrRMnoOhf63fSSytvNHICE1skDvn91JE_WlVY$
> > >  
> > > 
> > 
> > 
> > --
> > Saludos,
> > Carlos Ortega
> > https://urldefense.com/v3/__http://www.qualityexcellence.es__;!!D9dNQwwGXtA!SO5aun-Yamxtje74i5V9XQrQWI1Q_2DNWSIHAcTX9KKrRMnoOhf63fSSytvNHICE1skDvn91OxPAun4$
> >  
> > 
> 
>         [[alternative HTML version deleted]]
> 
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!SO5aun-Yamxtje74i5V9XQrQWI1Q_2DNWSIHAcTX9KKrRMnoOhf63fSSytvNHICE1skDvn91JE_WlVY$
>  



Más información sobre la lista de distribución R-help-es