Estimados colegas:Tengo un problema que debe de tener una solución simple pero ya me entrampe.tengo un conjunto de valores para ciertos elementos, y se debe asignar un valor ente 1 y 4, según un rango, he estado intentándolo hacer con switch pero no me ha funcionadola idea es la siguiente tengo el elemento 1, y se debe de asignar un valor de acuerdo a la siguiente tabla | 1 |     2 |     3        | 4 | | | | < 100  | 100-200 | 200-300 | >300 | | | de antemano agradezco la ayuda Saludos Enrique RAMOSIngeniero oficina de confiabilidadLAPEM - CFE
[R-es] uso de switch o alternativa
5 messages · Enrique RAMOS, Javier Marcuzzi, eric +1 more
Estimado Enrique Ramos Hay muchas formas, depende el gusto personal, cuestiones de código, si yo puedo utilizo algo vectorizado. Mire este hipervÃnculo, es una simple búsqueda a su pregunta realizada por otra persona. https://stackoverflow.com/questions/4622060/case-statement-equivalent-in-r Javier Rubén Marcuzzi El jue., 5 mar. 2020 a las 16:42, Enrique RAMOS via R-help-es (< r-help-es en r-project.org>) escribió:
Estimados colegas:Tengo un problema que debe de tener una solución simple
pero ya me entrampe.tengo un conjunto de valores para ciertos elementos, y
se debe asignar un valor ente 1 y 4, según un rango, he estado intentándolo
hacer con switch pero no me ha funcionadola idea es la siguiente tengo el
elemento 1, y se debe de asignar un valor de acuerdo a la siguiente tabla
| 1 | 2 | 3 | 4 |
| |
|
< 100 | 100-200 | 200-300 | >300 |
| |
de antemano agradezco la ayuda
Saludos Enrique RAMOSIngeniero oficina de confiabilidadLAPEM - CFE
[[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
Como siempre ando apurado haciendo las tareas, siempre lo hago con ifelse aunque seguro hay alguna forma más eficiente, pero no he tenido tiempo de investigar. Algo asà quizá: library(data.table) tus.datos <- as.data.table(tus.datos) tus.datos[ , newcol:=ifelse( oldcol < 100, 1, ifelse( oldcol < 200, 2 , ifelse( oldcol < 300, 3 , 4 ))) ] ojo con los lÃmites xq has incluÃdo el 200 en dos de los intervalos. Ojalá sirva. Saludos !!
On 05-03-20 16:41, Enrique RAMOS via R-help-es wrote:
Estimados colegas:Tengo un problema que debe de tener una solución simple pero ya me entrampe.tengo un conjunto de valores para ciertos elementos, y se debe asignar un valor ente 1 y 4, según un rango, he estado intentándolo hacer con switch pero no me ha funcionadola idea es la siguiente tengo el elemento 1, y se debe de asignar un valor de acuerdo a la siguiente tabla | 1 |     2 |     3        | 4 | | | | < 100  | 100-200 | 200-300 | >300 | | | de antemano agradezco la ayuda Saludos Enrique RAMOSIngeniero oficina de confiabilidadLAPEM - CFE [[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
x <- seq(0, 350, 10)
cut(x =x, breaks = c(min(x), 100, 200, 300, max(x)),
labels = c("<100", "100-200", "200-300", ">300"),
include.lowest = TRUE)
cut(x =x, breaks = c(min(x), 100, 200, 300, max(x)), include.lowest = TRUE)
El jue., 5 mar. 2020 a las 14:42, Enrique RAMOS via R-help-es (<
r-help-es en r-project.org>) escribió:
Estimados colegas:Tengo un problema que debe de tener una solución simple
pero ya me entrampe.tengo un conjunto de valores para ciertos elementos, y
se debe asignar un valor ente 1 y 4, según un rango, he estado intentándolo
hacer con switch pero no me ha funcionadola idea es la siguiente tengo el
elemento 1, y se debe de asignar un valor de acuerdo a la siguiente tabla
| 1 | 2 | 3 | 4 |
| |
|
< 100 | 100-200 | 200-300 | >300 |
| |
de antemano agradezco la ayuda
Saludos Enrique RAMOSIngeniero oficina de confiabilidadLAPEM - CFE
[[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
Mil graciasideas interesantes para resolver el problema, las pruebo
Saludos Enrique RAMOSIngeniero Oficina de confiabilidadLAPEM - CFE
El jueves, 5 de marzo de 2020 17:41:31 GMT-7, Juan Carlos Lopez Mesa <jclopez5 en unal.edu.co> escribió:
x <- seq(0, 350, 10)
cut(x =x, breaks = c(min(x), 100, 200, 300, max(x)),
  labels = c("<100", "100-200", "200-300", ">300"),
  include.lowest = TRUE)
cut(x =x, breaks = c(min(x), 100, 200, 300, max(x)), include.lowest = TRUE)
El jue., 5 mar. 2020 a las 14:42, Enrique RAMOS via R-help-es (<r-help-es en r-project.org>) escribió:
Estimados colegas:Tengo un problema que debe de tener una solución simple pero ya me entrampe.tengo un conjunto de valores para ciertos elementos, y se debe asignar un valor ente 1 y 4, según un rango, he estado intentándolo hacer con switch pero no me ha funcionadola idea es la siguiente tengo el elemento 1, y se debe de asignar un valor de acuerdo a la siguiente tabla
| 1 | Â Â Â Â 2 | Â Â Â Â 3Â Â Â Â Â Â Â Â | 4 |
 | |
|
< 100Â Â | 100-200 | 200-300 | >300 |
 | |
de antemano agradezco la ayuda
Saludos Enrique RAMOSIngeniero oficina de confiabilidadLAPEM - CFE
    [[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