juan manuel dias
2023-Mar-09 13:20 UTC
[R-es] reemplazar valores en texto según condiciones
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 en
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
> www.qualityexcellence.es
>
> El mar, 7 mar 2023 a las 18:04, juan manuel dias (<juamadias en
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 en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
[[alternative HTML version deleted]]
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 en 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 en 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 en 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 en r-project.org > https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!SO5aun-Yamxtje74i5V9XQrQWI1Q_2DNWSIHAcTX9KKrRMnoOhf63fSSytvNHICE1skDvn91JE_WlVY$ >