Discussion:
[R-es] Ayuda con R-Studio condiciones
Dayana Muñoz
2018-03-23 13:54:46 UTC
Permalink
Estimados,


Junto con saludar, agradeceré si alguien me pueda ayudar con un problema que tengo: Tengo una base de datos llamada "BD", la cuál posee 300 columnas y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva columna (adicional), llamada "SECCION" que me clasifique con letras los valores numéricos que tengo en la columna "DIVISION":


ID TAMAÑO x DIVISION GRUPO CLASE

338576



Grande

2

82

821

8219

338421



Grande

3

58

581

5813

352821



Mediana

2

96

960

9603

340936



Grande

1

68

681

6810

340937



Grande

3

77

773

7730

340938



Grande

3

71

712

7120

353517



Grande

1

73

731

7310

340940



Grande

3

71

711

7110

340941



Grande

3

69

691

6910

340942



Grande

3

73

731

7310


Por ejemplo:


Quiero que me clasifique en la nueva columna llamada SECCION, todas las divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de 70 a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la letra N, de tal forma de conseguir esto:



ID TAMAÑO X DIVISION GRUPO CLASE SECCION
338576

Grande

2

82

821

8219
M
338421

Grande

3

58

581

5813
D
352821

Mediana

2

96

960

9603
N
340936

Grande

1

68

681

6810
G
340937

Grande

3

77

773

7730
L
340938

Grande

3

71

712

7120
L
353517

Grande

1

73

731

7310
L
340940

Grande

3

71

711

7110
L
340941

Grande

3

69

691

6910
G
340942

Grande

3

73

731

7310
L


Agradeceré mucho si alguien me pueda orientar en como conseguir esta nueva columna

Saludos!




[[alternative HTML version deleted]]
Carlos Ortega
2018-03-23 14:03:34 UTC
Permalink
Hola,

Mira la función "ifelse()" que te ayudará con esto...

Gracias,
Carlos Ortega
www.qualityexcellence.es


El 23 de marzo de 2018, 14:54, Dayana Muñoz <***@hotmail.com>
escribió:

> Estimados,
>
>
> Junto con saludar, agradeceré si alguien me pueda ayudar con un problema
> que tengo: Tengo una base de datos llamada "BD", la cuál posee 300 columnas
> y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos
> dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva columna
> (adicional), llamada "SECCION" que me clasifique con letras los valores
> numéricos que tengo en la columna "DIVISION":
>
>
> ID TAMAÑO x
> DIVISION GRUPO CLASE
>
> 338576
>
>
>
> Grande
>
> 2
>
> 82
>
> 821
>
> 8219
>
> 338421
>
>
>
> Grande
>
> 3
>
> 58
>
> 581
>
> 5813
>
> 352821
>
>
>
> Mediana
>
> 2
>
> 96
>
> 960
>
> 9603
>
> 340936
>
>
>
> Grande
>
> 1
>
> 68
>
> 681
>
> 6810
>
> 340937
>
>
>
> Grande
>
> 3
>
> 77
>
> 773
>
> 7730
>
> 340938
>
>
>
> Grande
>
> 3
>
> 71
>
> 712
>
> 7120
>
> 353517
>
>
>
> Grande
>
> 1
>
> 73
>
> 731
>
> 7310
>
> 340940
>
>
>
> Grande
>
> 3
>
> 71
>
> 711
>
> 7110
>
> 340941
>
>
>
> Grande
>
> 3
>
> 69
>
> 691
>
> 6910
>
> 340942
>
>
>
> Grande
>
> 3
>
> 73
>
> 731
>
> 7310
>
>
> Por ejemplo:
>
>
> Quiero que me clasifique en la nueva columna llamada SECCION, todas las
> divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de 70
> a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la
> letra N, de tal forma de conseguir esto:
>
>
>
> ID TAMAÑO X DIVISION GRUPO CLASE SECCION
> 338576
>
> Grande
>
> 2
>
> 82
>
> 821
>
> 8219
> M
> 338421
>
> Grande
>
> 3
>
> 58
>
> 581
>
> 5813
> D
> 352821
>
> Mediana
>
> 2
>
> 96
>
> 960
>
> 9603
> N
> 340936
>
> Grande
>
> 1
>
> 68
>
> 681
>
> 6810
> G
> 340937
>
> Grande
>
> 3
>
> 77
>
> 773
>
> 7730
> L
> 340938
>
> Grande
>
> 3
>
> 71
>
> 712
>
> 7120
> L
> 353517
>
> Grande
>
> 1
>
> 73
>
> 731
>
> 7310
> L
> 340940
>
> Grande
>
> 3
>
> 71
>
> 711
>
> 7110
> L
> 340941
>
> Grande
>
> 3
>
> 69
>
> 691
>
> 6910
> G
> 340942
>
> Grande
>
> 3
>
> 73
>
> 731
>
> 7310
> L
>
>
> Agradeceré mucho si alguien me pueda orientar en como conseguir esta nueva
> columna
>
> Saludos!
>
>
>
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>


--
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]
Javier Marcuzzi
2018-03-23 14:04:16 UTC
Permalink
Estimada Dayana Muñoz

Separemos el problema en dos, la primer parte es la condición, para esto
puede utilizar la forma que le resulte más apropiada, la segunda parte es
utilizar por ejemplo cbind al data.frame original, en otras palabras a los
datos les pega el resultado de la condición en una nueva columna.

Javier Rubén Marcuzzi

El 23 de marzo de 2018, 10:54, Dayana Muñoz <***@hotmail.com>
escribió:

> Estimados,
>
>
> Junto con saludar, agradeceré si alguien me pueda ayudar con un problema
> que tengo: Tengo una base de datos llamada "BD", la cuál posee 300 columnas
> y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos
> dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva columna
> (adicional), llamada "SECCION" que me clasifique con letras los valores
> numéricos que tengo en la columna "DIVISION":
>
>
> ID TAMAÑO x
> DIVISION GRUPO CLASE
>
> 338576
>
>
>
> Grande
>
> 2
>
> 82
>
> 821
>
> 8219
>
> 338421
>
>
>
> Grande
>
> 3
>
> 58
>
> 581
>
> 5813
>
> 352821
>
>
>
> Mediana
>
> 2
>
> 96
>
> 960
>
> 9603
>
> 340936
>
>
>
> Grande
>
> 1
>
> 68
>
> 681
>
> 6810
>
> 340937
>
>
>
> Grande
>
> 3
>
> 77
>
> 773
>
> 7730
>
> 340938
>
>
>
> Grande
>
> 3
>
> 71
>
> 712
>
> 7120
>
> 353517
>
>
>
> Grande
>
> 1
>
> 73
>
> 731
>
> 7310
>
> 340940
>
>
>
> Grande
>
> 3
>
> 71
>
> 711
>
> 7110
>
> 340941
>
>
>
> Grande
>
> 3
>
> 69
>
> 691
>
> 6910
>
> 340942
>
>
>
> Grande
>
> 3
>
> 73
>
> 731
>
> 7310
>
>
> Por ejemplo:
>
>
> Quiero que me clasifique en la nueva columna llamada SECCION, todas las
> divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de 70
> a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la
> letra N, de tal forma de conseguir esto:
>
>
>
> ID TAMAÑO X DIVISION GRUPO CLASE SECCION
> 338576
>
> Grande
>
> 2
>
> 82
>
> 821
>
> 8219
> M
> 338421
>
> Grande
>
> 3
>
> 58
>
> 581
>
> 5813
> D
> 352821
>
> Mediana
>
> 2
>
> 96
>
> 960
>
> 9603
> N
> 340936
>
> Grande
>
> 1
>
> 68
>
> 681
>
> 6810
> G
> 340937
>
> Grande
>
> 3
>
> 77
>
> 773
>
> 7730
> L
> 340938
>
> Grande
>
> 3
>
> 71
>
> 712
>
> 7120
> L
> 353517
>
> Grande
>
> 1
>
> 73
>
> 731
>
> 7310
> L
> 340940
>
> Grande
>
> 3
>
> 71
>
> 711
>
> 7110
> L
> 340941
>
> Grande
>
> 3
>
> 69
>
> 691
>
> 6910
> G
> 340942
>
> Grande
>
> 3
>
> 73
>
> 731
>
> 7310
> L
>
>
> Agradeceré mucho si alguien me pueda orientar en como conseguir esta nueva
> columna
>
> Saludos!
>
>
>
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>

[[alternative HTML version deleted]]
Dayana Muñoz
2018-03-23 14:12:12 UTC
Permalink
He tratado de usar lo siguiente:

a<- ifelse(BD$División>=50 & BD$División<59,"D",
ifelse (BD$División>=60 & BD$División<=69,"G",
ifelse (BD$División>=70 & BD$División<=79,"L",
ifelse (BD$División>=80 & BD$División<=89,"M",
ifelse (BD$División>=90 & BD$División<=99,"N","Z")))))



Pero me arroja puros NA como resultado.




________________________________
De: Javier Marcuzzi <***@gmail.com>
Enviado: viernes, 23 de marzo de 2018 11:04:16
Para: Dayana Muñoz
Cc: r-help-***@r-project.org
Asunto: Re: [R-es] Ayuda con R-Studio condiciones

Estimada Dayana Muñoz

Separemos el problema en dos, la primer parte es la condición, para esto puede utilizar la forma que le resulte más apropiada, la segunda parte es utilizar por ejemplo cbind al data.frame original, en otras palabras a los datos les pega el resultado de la condición en una nueva columna.

Javier Rubén Marcuzzi

El 23 de marzo de 2018, 10:54, Dayana Muñoz <***@hotmail.com<mailto:***@hotmail.com>> escribió:
Estimados,


Junto con saludar, agradeceré si alguien me pueda ayudar con un problema que tengo: Tengo una base de datos llamada "BD", la cuál posee 300 columnas y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva columna (adicional), llamada "SECCION" que me clasifique con letras los valores numéricos que tengo en la columna "DIVISION":


ID TAMAÑO x DIVISION GRUPO CLASE





Grande

2











Grande

3











Mediana

2











Grande

1











Grande

3











Grande

3











Grande

1











Grande

3











Grande

3











Grande

3








Por ejemplo:


Quiero que me clasifique en la nueva columna llamada SECCION, todas las divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de 70 a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la letra N, de tal forma de conseguir esto:



ID TAMAÑO X DIVISION GRUPO CLASE SECCION


Grande

2






M


Grande

3






D


Mediana

2






N


Grande

1






G


Grande

3






L


Grande

3






L


Grande

1






L


Grande

3






L


Grande

3






G


Grande

3






L


Agradeceré mucho si alguien me pueda orientar en como conseguir esta nueva columna

Saludos!




[[alternative HTML version deleted]]


_______________________________________________
R-help-es mailing list
R-help-***@r-project.org<mailto:R-help-***@r-project.org>
https://stat.ethz.ch/mailman/listinfo/r-help-es



[[alternative HTML version deleted]]
Xavier-Andoni Tibau Alberdi
2018-03-23 14:36:23 UTC
Permalink
Crea una funcion y luego la aplicas. La función seria la que ya has creado,
pero cambia BD$División por x.

Algo así como:
recodificar <- function (x){
ifelse(x>=50 & x<59,"D",
ifelse (x>=60 & x<=69,"G",
ifelse (x>=70 & x<=79,"L",
ifelse (x>=80 & x<=89,"M",
ifelse (x>=90 &
x<=99,"N","Z")))))
}

Y luego la aplicas.

BD$Nueva_variable <- recodificar( BD$División).

Eso deveria funcionar y no necesitas unir columnas.

Saludos,

——————————————————————————
*Deutsches Zentrum für Luft- und Raumfahrt* e.V. (DLR)
German Aerospace Center

Xavier-Andoni Tibau Alberdi | Scientific Staff
Institute of Data Science | Data Management and Analysis | Mälzerstraße 3 |
07745 Jena
<***@dlr.de>


2018-03-23 15:12 GMT+01:00 Dayana Muñoz <***@hotmail.com>:

> He tratado de usar lo siguiente:
>
> a<- ifelse(BD$División>=50 & BD$División<59,"D",
> ifelse (BD$División>=60 & BD$División<=69,"G",
> ifelse (BD$División>=70 &
> BD$División<=79,"L",
> ifelse (BD$División>=80 &
> BD$División<=89,"M",
> ifelse (BD$División>=90
> & BD$División<=99,"N","Z")))))
>
>
>
> Pero me arroja puros NA como resultado.
>
>
>
>
> ________________________________
> De: Javier Marcuzzi <***@gmail.com>
> Enviado: viernes, 23 de marzo de 2018 11:04:16
> Para: Dayana Muñoz
> Cc: r-help-***@r-project.org
> Asunto: Re: [R-es] Ayuda con R-Studio condiciones
>
> Estimada Dayana Muñoz
>
> Separemos el problema en dos, la primer parte es la condición, para esto
> puede utilizar la forma que le resulte más apropiada, la segunda parte es
> utilizar por ejemplo cbind al data.frame original, en otras palabras a los
> datos les pega el resultado de la condición en una nueva columna.
>
> Javier Rubén Marcuzzi
>
> El 23 de marzo de 2018, 10:54, Dayana Muñoz <***@hotmail.com<
> mailto:***@hotmail.com>> escribió:
> Estimados,
>
>
> Junto con saludar, agradeceré si alguien me pueda ayudar con un problema
> que tengo: Tengo una base de datos llamada "BD", la cuál posee 300 columnas
> y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos
> dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva columna
> (adicional), llamada "SECCION" que me clasifique con letras los valores
> numéricos que tengo en la columna "DIVISION":
>
>
> ID TAMAÑO x
> DIVISION GRUPO CLASE
>
>
>
>
>
> Grande
>
> 2
>
>
>
>
>
>
>
>
>
>
>
> Grande
>
> 3
>
>
>
>
>
>
>
>
>
>
>
> Mediana
>
> 2
>
>
>
>
>
>
>
>
>
>
>
> Grande
>
> 1
>
>
>
>
>
>
>
>
>
>
>
> Grande
>
> 3
>
>
>
>
>
>
>
>
>
>
>
> Grande
>
> 3
>
>
>
>
>
>
>
>
>
>
>
> Grande
>
> 1
>
>
>
>
>
>
>
>
>
>
>
> Grande
>
> 3
>
>
>
>
>
>
>
>
>
>
>
> Grande
>
> 3
>
>
>
>
>
>
>
>
>
>
>
> Grande
>
> 3
>
>
>
>
>
>
>
>
> Por ejemplo:
>
>
> Quiero que me clasifique en la nueva columna llamada SECCION, todas las
> divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de 70
> a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la
> letra N, de tal forma de conseguir esto:
>
>
>
> ID TAMAÑO X DIVISION GRUPO CLASE SECCION
>
>
> Grande
>
> 2
>
>
>
>
>
>
> M
>
>
> Grande
>
> 3
>
>
>
>
>
>
> D
>
>
> Mediana
>
> 2
>
>
>
>
>
>
> N
>
>
> Grande
>
> 1
>
>
>
>
>
>
> G
>
>
> Grande
>
> 3
>
>
>
>
>
>
> L
>
>
> Grande
>
> 3
>
>
>
>
>
>
> L
>
>
> Grande
>
> 1
>
>
>
>
>
>
> L
>
>
> Grande
>
> 3
>
>
>
>
>
>
> L
>
>
> Grande
>
> 3
>
>
>
>
>
>
> G
>
>
> Grande
>
> 3
>
>
>
>
>
>
> L
>
>
> Agradeceré mucho si alguien me pueda orientar en como conseguir esta nueva
> columna
>
> Saludos!
>
>
>
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org<mailto:R-help-***@r-project.org>
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>

[[alternative HTML version deleted]]
Javier Marcuzzi
2018-03-23 14:37:33 UTC
Permalink
Estimada Dayana Muñoz

Leí muy rápido para dar una respuesta acertada y completa, pero en el
primer if hay un problema, no use tantos ifelse, y el 59 no tiene donde ir,
porque busca los menores y luego los iguales o mayores a 60.

Javier Rubén Marcuzzi

El 23 de marzo de 2018, 11:12, Dayana Muñoz <***@hotmail.com>
escribió:

> He tratado de usar lo siguiente:
>
> a<- ifelse(BD$División>=50 & BD$División<59,"D",
> ifelse (BD$División>=60 & BD$División<=69,"G",
> ifelse (BD$División>=70 &
> BD$División<=79,"L",
> ifelse (BD$División>=80 &
> BD$División<=89,"M",
> ifelse (BD$División>=90
> & BD$División<=99,"N","Z")))))
>
>
>
> Pero me arroja puros NA como resultado.
>
>
>
>
>
> ------------------------------
> *De:* Javier Marcuzzi <***@gmail.com>
> *Enviado:* viernes, 23 de marzo de 2018 11:04:16
> *Para:* Dayana Muñoz
> *Cc:* r-help-***@r-project.org
> *Asunto:* Re: [R-es] Ayuda con R-Studio condiciones
>
> Estimada Dayana Muñoz
>
> Separemos el problema en dos, la primer parte es la condición, para esto
> puede utilizar la forma que le resulte más apropiada, la segunda parte es
> utilizar por ejemplo cbind al data.frame original, en otras palabras a los
> datos les pega el resultado de la condición en una nueva columna.
>
> Javier Rubén Marcuzzi
>
> El 23 de marzo de 2018, 10:54, Dayana Muñoz <***@hotmail.com>
> escribió:
>
> Estimados,
>
>
> Junto con saludar, agradeceré si alguien me pueda ayudar con un problema
> que tengo: Tengo una base de datos llamada "BD", la cuál posee 300 columnas
> y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos
> dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva columna
> (adicional), llamada "SECCION" que me clasifique con letras los valores
> numéricos que tengo en la columna "DIVISION":
>
>
> ID TAMAÑO x
> DIVISION GRUPO CLASE
>
> 338576
>
>
>
> Grande
>
> 2
>
> 82
>
> 821
>
> 8219
>
> 338421
>
>
>
> Grande
>
> 3
>
> 58
>
> 581
>
> 5813
>
> 352821
>
>
>
> Mediana
>
> 2
>
> 96
>
> 960
>
> 9603
>
> 340936
>
>
>
> Grande
>
> 1
>
> 68
>
> 681
>
> 6810
>
> 340937
>
>
>
> Grande
>
> 3
>
> 77
>
> 773
>
> 7730
>
> 340938
>
>
>
> Grande
>
> 3
>
> 71
>
> 712
>
> 7120
>
> 353517
>
>
>
> Grande
>
> 1
>
> 73
>
> 731
>
> 7310
>
> 340940
>
>
>
> Grande
>
> 3
>
> 71
>
> 711
>
> 7110
>
> 340941
>
>
>
> Grande
>
> 3
>
> 69
>
> 691
>
> 6910
>
> 340942
>
>
>
> Grande
>
> 3
>
> 73
>
> 731
>
> 7310
>
>
> Por ejemplo:
>
>
> Quiero que me clasifique en la nueva columna llamada SECCION, todas las
> divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de 70
> a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la
> letra N, de tal forma de conseguir esto:
>
>
>
> ID TAMAÑO X DIVISION GRUPO CLASE SECCION
> 338576
>
> Grande
>
> 2
>
> 82
>
> 821
>
> 8219
> M
> 338421
>
> Grande
>
> 3
>
> 58
>
> 581
>
> 5813
> D
> 352821
>
> Mediana
>
> 2
>
> 96
>
> 960
>
> 9603
> N
> 340936
>
> Grande
>
> 1
>
> 68
>
> 681
>
> 6810
> G
> 340937
>
> Grande
>
> 3
>
> 77
>
> 773
>
> 7730
> L
> 340938
>
> Grande
>
> 3
>
> 71
>
> 712
>
> 7120
> L
> 353517
>
> Grande
>
> 1
>
> 73
>
> 731
>
> 7310
> L
> 340940
>
> Grande
>
> 3
>
> 71
>
> 711
>
> 7110
> L
> 340941
>
> Grande
>
> 3
>
> 69
>
> 691
>
> 6910
> G
> 340942
>
> Grande
>
> 3
>
> 73
>
> 731
>
> 7310
> L
>
>
> Agradeceré mucho si alguien me pueda orientar en como conseguir esta nueva
> columna
>
> Saludos!
>
>
>
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>

[[alternative HTML version deleted]]
Carlos Ortega
2018-03-23 19:05:16 UTC
Permalink
Hola,

Repasa muy bien dos cosas:

- El nombre de tu variable.
- en tu primer correo la variable se llama "DIVISION" todo en mayúsculas.
- Y en lo que has hecho con "ifelse()" pones "División".
- Para "R" los dos nombres son diferentes.
- Y cuidado con los acentos...si es posible no los pongas.
- Si todo lo anterior era consistente (los nombres estaban bien, eran
iguales en los dos casos).
- Prueba a ver la clases de la variable.
- Haz "class(BD$nombre_variable)"
- Puede que tu variable sea de clase "character" y no puedas
entonces aplicar una condición (ifelse) pensando que es un número...

Saludos,
Carlos Ortega
www.qualityexcellence.es

El 23 de marzo de 2018, 15:37, Javier Marcuzzi <
***@gmail.com> escribió:

> Estimada Dayana Muñoz
>
> Leí muy rápido para dar una respuesta acertada y completa, pero en el
> primer if hay un problema, no use tantos ifelse, y el 59 no tiene donde ir,
> porque busca los menores y luego los iguales o mayores a 60.
>
> Javier Rubén Marcuzzi
>
> El 23 de marzo de 2018, 11:12, Dayana Muñoz <***@hotmail.com>
> escribió:
>
> > He tratado de usar lo siguiente:
> >
> > a<- ifelse(BD$División>=50 & BD$División<59,"D",
> > ifelse (BD$División>=60 & BD$División<=69,"G",
> > ifelse (BD$División>=70 &
> > BD$División<=79,"L",
> > ifelse (BD$División>=80 &
> > BD$División<=89,"M",
> > ifelse (BD$División>=90
> > & BD$División<=99,"N","Z")))))
> >
> >
> >
> > Pero me arroja puros NA como resultado.
> >
> >
> >
> >
> >
> > ------------------------------
> > *De:* Javier Marcuzzi <***@gmail.com>
> > *Enviado:* viernes, 23 de marzo de 2018 11:04:16
> > *Para:* Dayana Muñoz
> > *Cc:* r-help-***@r-project.org
> > *Asunto:* Re: [R-es] Ayuda con R-Studio condiciones
> >
> > Estimada Dayana Muñoz
> >
> > Separemos el problema en dos, la primer parte es la condición, para esto
> > puede utilizar la forma que le resulte más apropiada, la segunda parte es
> > utilizar por ejemplo cbind al data.frame original, en otras palabras a
> los
> > datos les pega el resultado de la condición en una nueva columna.
> >
> > Javier Rubén Marcuzzi
> >
> > El 23 de marzo de 2018, 10:54, Dayana Muñoz <***@hotmail.com>
> > escribió:
> >
> > Estimados,
> >
> >
> > Junto con saludar, agradeceré si alguien me pueda ayudar con un problema
> > que tengo: Tengo una base de datos llamada "BD", la cuál posee 300
> columnas
> > y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos
> > dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva
> columna
> > (adicional), llamada "SECCION" que me clasifique con letras los valores
> > numéricos que tengo en la columna "DIVISION":
> >
> >
> > ID TAMAÑO x
> > DIVISION GRUPO CLASE
> >
> > 338576
> >
> >
> >
> > Grande
> >
> > 2
> >
> > 82
> >
> > 821
> >
> > 8219
> >
> > 338421
> >
> >
> >
> > Grande
> >
> > 3
> >
> > 58
> >
> > 581
> >
> > 5813
> >
> > 352821
> >
> >
> >
> > Mediana
> >
> > 2
> >
> > 96
> >
> > 960
> >
> > 9603
> >
> > 340936
> >
> >
> >
> > Grande
> >
> > 1
> >
> > 68
> >
> > 681
> >
> > 6810
> >
> > 340937
> >
> >
> >
> > Grande
> >
> > 3
> >
> > 77
> >
> > 773
> >
> > 7730
> >
> > 340938
> >
> >
> >
> > Grande
> >
> > 3
> >
> > 71
> >
> > 712
> >
> > 7120
> >
> > 353517
> >
> >
> >
> > Grande
> >
> > 1
> >
> > 73
> >
> > 731
> >
> > 7310
> >
> > 340940
> >
> >
> >
> > Grande
> >
> > 3
> >
> > 71
> >
> > 711
> >
> > 7110
> >
> > 340941
> >
> >
> >
> > Grande
> >
> > 3
> >
> > 69
> >
> > 691
> >
> > 6910
> >
> > 340942
> >
> >
> >
> > Grande
> >
> > 3
> >
> > 73
> >
> > 731
> >
> > 7310
> >
> >
> > Por ejemplo:
> >
> >
> > Quiero que me clasifique en la nueva columna llamada SECCION, todas las
> > divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de
> 70
> > a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la
> > letra N, de tal forma de conseguir esto:
> >
> >
> >
> > ID TAMAÑO X DIVISION GRUPO CLASE SECCION
> > 338576
> >
> > Grande
> >
> > 2
> >
> > 82
> >
> > 821
> >
> > 8219
> > M
> > 338421
> >
> > Grande
> >
> > 3
> >
> > 58
> >
> > 581
> >
> > 5813
> > D
> > 352821
> >
> > Mediana
> >
> > 2
> >
> > 96
> >
> > 960
> >
> > 9603
> > N
> > 340936
> >
> > Grande
> >
> > 1
> >
> > 68
> >
> > 681
> >
> > 6810
> > G
> > 340937
> >
> > Grande
> >
> > 3
> >
> > 77
> >
> > 773
> >
> > 7730
> > L
> > 340938
> >
> > Grande
> >
> > 3
> >
> > 71
> >
> > 712
> >
> > 7120
> > L
> > 353517
> >
> > Grande
> >
> > 1
> >
> > 73
> >
> > 731
> >
> > 7310
> > L
> > 340940
> >
> > Grande
> >
> > 3
> >
> > 71
> >
> > 711
> >
> > 7110
> > L
> > 340941
> >
> > Grande
> >
> > 3
> >
> > 69
> >
> > 691
> >
> > 6910
> > G
> > 340942
> >
> > Grande
> >
> > 3
> >
> > 73
> >
> > 731
> >
> > 7310
> > L
> >
> >
> > Agradeceré mucho si alguien me pueda orientar en como conseguir esta
> nueva
> > columna
> >
> > Saludos!
> >
> >
> >
> >
> > [[alternative HTML version deleted]]
> >
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-***@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> >
> >
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



--
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]
Dayana Muñoz
2018-03-23 19:15:05 UTC
Permalink
Solucionado, gracias a Xavier.

Descarga Outlook para iOS<https://aka.ms/o0ukef>
________________________________
From: Carlos Ortega <***@qualityexcellence.es>
Sent: Friday, March 23, 2018 4:05:16 PM
To: Dayana Muñoz
Cc: r-help-***@r-project.org
Subject: Re: [R-es] Ayuda con R-Studio condiciones

Hola,

Repasa muy bien dos cosas:

* El nombre de tu variable.
* en tu primer correo la variable se llama "DIVISION" todo en mayúsculas.
* Y en lo que has hecho con "ifelse()" pones "División".
* Para "R" los dos nombres son diferentes.
* Y cuidado con los acentos...si es posible no los pongas.
* Si todo lo anterior era consistente (los nombres estaban bien, eran iguales en los dos casos).
* Prueba a ver la clases de la variable.
* Haz "class(BD$nombre_variable)"
* Puede que tu variable sea de clase "character" y no puedas entonces aplicar una condición (ifelse) pensando que es un número...

Saludos,
Carlos Ortega
www.qualityexcellence.es<http://www.qualityexcellence.es>

El 23 de marzo de 2018, 15:37, Javier Marcuzzi <***@gmail.com<mailto:***@gmail.com>> escribió:
Estimada Dayana Muñoz

Leí muy rápido para dar una respuesta acertada y completa, pero en el
primer if hay un problema, no use tantos ifelse, y el 59 no tiene donde ir,
porque busca los menores y luego los iguales o mayores a 60.

Javier Rubén Marcuzzi

El 23 de marzo de 2018, 11:12, Dayana Muñoz <***@hotmail.com<mailto:***@hotmail.com>>
escribió:

> He tratado de usar lo siguiente:
>
> a<- ifelse(BD$División>=50 & BD$División<59,"D",
> ifelse (BD$División>=60 & BD$División<=69,"G",
> ifelse (BD$División>=70 &
> BD$División<=79,"L",
> ifelse (BD$División>=80 &
> BD$División<=89,"M",
> ifelse (BD$División>=90
> & BD$División<=99,"N","Z")))))
>
>
>
> Pero me arroja puros NA como resultado.
>
>
>
>
>
> ------------------------------
> *De:* Javier Marcuzzi <***@gmail.com<mailto:***@gmail.com>>
> *Enviado:* viernes, 23 de marzo de 2018 11:04:16
> *Para:* Dayana Muñoz
> *Cc:* r-help-***@r-project.org<mailto:r-help-***@r-project.org>
> *Asunto:* Re: [R-es] Ayuda con R-Studio condiciones
>
> Estimada Dayana Muñoz
>
> Separemos el problema en dos, la primer parte es la condición, para esto
> puede utilizar la forma que le resulte más apropiada, la segunda parte es
> utilizar por ejemplo cbind al data.frame original, en otras palabras a los
> datos les pega el resultado de la condición en una nueva columna.
>
> Javier Rubén Marcuzzi
>
> El 23 de marzo de 2018, 10:54, Dayana Muñoz <***@hotmail.com<mailto:***@hotmail.com>>
> escribió:
>
> Estimados,
>
>
> Junto con saludar, agradeceré si alguien me pueda ayudar con un problema
> que tengo: Tengo una base de datos llamada "BD", la cuál posee 300 columnas
> y 2800 filas, tengo una columna llamada "DIVISION" que se compone de dos
> dígitos. Lo que quiero hacer, pero no sé como es: Generar una nueva columna
> (adicional), llamada "SECCION" que me clasifique con letras los valores
> numéricos que tengo en la columna "DIVISION":
>
>
> ID TAMAÑO x
> DIVISION GRUPO CLASE
>
> 338576
>
>
>
> Grande
>
> 2
>
> 82
>
> 821
>
> 8219
>
> 338421
>
>
>
> Grande
>
> 3
>
> 58
>
> 581
>
> 5813
>
> 352821
>
>
>
> Mediana
>
> 2
>
> 96
>
> 960
>
> 9603
>
> 340936
>
>
>
> Grande
>
> 1
>
> 68
>
> 681
>
> 6810
>
> 340937
>
>
>
> Grande
>
> 3
>
> 77
>
> 773
>
> 7730
>
> 340938
>
>
>
> Grande
>
> 3
>
> 71
>
> 712
>
> 7120
>
> 353517
>
>
>
> Grande
>
> 1
>
> 73
>
> 731
>
> 7310
>
> 340940
>
>
>
> Grande
>
> 3
>
> 71
>
> 711
>
> 7110
>
> 340941
>
>
>
> Grande
>
> 3
>
> 69
>
> 691
>
> 6910
>
> 340942
>
>
>
> Grande
>
> 3
>
> 73
>
> 731
>
> 7310
>
>
> Por ejemplo:
>
>
> Quiero que me clasifique en la nueva columna llamada SECCION, todas las
> divisiones de 50 a 59 con la letra D, de 60 a 69 con la letra G, las de 70
> a 79 con la letra L, las de 80 a 89 con la letra M, las de 90 a 99 con la
> letra N, de tal forma de conseguir esto:
>
>
>
> ID TAMAÑO X DIVISION GRUPO CLASE SECCION
> 338576
>
> Grande
>
> 2
>
> 82
>
> 821
>
> 8219
> M
> 338421
>
> Grande
>
> 3
>
> 58
>
> 581
>
> 5813
> D
> 352821
>
> Mediana
>
> 2
>
> 96
>
> 960
>
> 9603
> N
> 340936
>
> Grande
>
> 1
>
> 68
>
> 681
>
> 6810
> G
> 340937
>
> Grande
>
> 3
>
> 77
>
> 773
>
> 7730
> L
> 340938
>
> Grande
>
> 3
>
> 71
>
> 712
>
> 7120
> L
> 353517
>
> Grande
>
> 1
>
> 73
>
> 731
>
> 7310
> L
> 340940
>
> Grande
>
> 3
>
> 71
>
> 711
>
> 7110
> L
> 340941
>
> Grande
>
> 3
>
> 69
>
> 691
>
> 6910
> G
> 340942
>
> Grande
>
> 3
>
> 73
>
> 731
>
> 7310
> L
>
>
> Agradeceré mucho si alguien me pueda orientar en como conseguir esta nueva
> columna
>
> Saludos!
>
>
>
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-***@r-project.org<mailto:R-help-***@r-project.org>
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>

[[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-***@r-project.org<mailto:R-help-***@r-project.org>
https://stat.ethz.ch/mailman/listinfo/r-help-es



--
Saludos,
Carlos Ortega
www.qualityexcellence.es<http://www.qualityexcellence.es>

[[alternative HTML version deleted]]
Loading...