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

2023-03-09 Por tema juan manuel dias
Muchas gracias a ambos!
Estoy haciendo con ejemplo de Carlos, con regex y funciona!!


El jue, 9 mar 2023 a las 10:59, Proyecto R-UCA () escribió:

> 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 ( >)
> > 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 ( >)
> > > 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@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@r-project.org
> >
> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!SO5aun-Yamxtje74i5V9XQrQWI1Q_2DNWSIHAcTX9KKrRMnoOhf63fSSytvNHICE1skDvn91JE_WlVY$
> >
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-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


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

2023-03-09 Por tema Proyecto R-UCA
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 ()
> 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 ()
> > 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@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@r-project.org
> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!SO5aun-Yamxtje74i5V9XQrQWI1Q_2DNWSIHAcTX9KKrRMnoOhf63fSSytvNHICE1skDvn91JE_WlVY$
>  

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


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

2023-03-09 Por tema juan manuel dias
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 ()
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 ()
> 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@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


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

2023-03-09 Por tema juan manuel dias
Hola! Si, pero se hace más largo el código. Como lo planteo Carlos va muy
bien y es más corto. Gracias!!

El mar., 7 de marzo de 2023 18:35, Juan Carlos Lopez Mesa <
jclop...@unal.edu.co> escribió:

> Hola,
>
> La función case_when() te puede servir
>
> https://dplyr.tidyverse.org/reference/case_when.html
>
>
>
> El mar, 7 mar 2023 a las 12:04, juan manuel dias ()
> 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@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
> *Aviso legal:* El contenido de este mensaje y los archivos adjuntos son
> confidenciales y de uso exclusivo de la Universidad Nacional de Colombia.
> Se encuentran dirigidos sólo para el uso del destinatario al cual van
> enviados. La reproducción, lectura y/o copia se encuentran prohibidas a
> cualquier persona diferente a este y puede ser ilegal. Si usted lo ha
> recibido por error, infórmenos y elimínelo de su correo. Los Datos
> Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra
> Política de Datos Personales que podrá consultar en la página web
> www.unal.edu.co. Las opiniones, informaciones, conclusiones y cualquier
> otro tipo de dato contenido en este correo electrónico, no relacionados con
> la actividad de la Universidad Nacional de Colombia, se entenderá como
> personales y de ninguna manera son avaladas por la Universidad.
>

[[alternative HTML version deleted]]

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


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

2023-03-08 Por tema juan manuel dias
muchas gracias carlos!

El mar, 7 mar 2023 a las 14:11, Carlos Ortega ()
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 ()
> 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@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


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

2023-03-07 Por tema Juan Carlos Lopez Mesa
Hola,

La función case_when() te puede servir

https://dplyr.tidyverse.org/reference/case_when.html



El mar, 7 mar 2023 a las 12:04, juan manuel dias ()
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@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

-- 
*Aviso legal:* El contenido de este mensaje y los archivos adjuntos son 
confidenciales y de uso exclusivo de la Universidad Nacional de Colombia. 
Se encuentran dirigidos sólo para el uso del destinatario al cual van 
enviados. La reproducción, lectura y/o copia se encuentran prohibidas a 
cualquier persona diferente a este y puede ser ilegal. Si usted lo ha 
recibido por error, infórmenos y elimínelo de su correo. Los Datos 
Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra 
Política de Datos Personales que podrá consultar en la página web 
www.unal.edu.co .* *Las opiniones, informaciones, 
conclusiones y cualquier otro tipo de dato contenido en este correo 
electrónico, no relacionados con la actividad de la Universidad Nacional de 
Colombia, se entenderá como personales y de ninguna manera son avaladas por 
la Universidad.

[[alternative HTML version deleted]]

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