Skip to content

[R-es] Filtrar datos con una excepción

13 messages · miriam.alzate en unavarra.es, Marcelino de la Cruz Rot, Freddy López +2 more

#
Buenas,

En un conjunto de datos, llamado Datos, necesito quedarme con todas la
observaciones del conjunto excepto con las observaciones que cumplan dos
requisitos a la vez.

Necesitaría tener todos los datos excepto cuando se de simultáneamente
que: Datos$evolucionsi=0 y Datos$evolucionno=0.

¿Cómo lo filtaría?

Muchas gracias
#
El lun, 23-10-2017 a las 02:00 +0200, miriam.alzate en unavarra.es
escribió:
Podrías usar, entre muchas opciones, la función filter de la librería
dplyr:

filter(Datos, evolucionsi==0, evolucionno == 1)

Saludos.
#
Gracias por la respuesta. Quizá me he explicado mal.

Si utilizo esa funcion me filtra el conjunto de datos y me deja las
observaciones en las que evolucionsi=0 y todas en las que evolucionno=0.
Yo lo que quiero es que me las quite del conjunto de datos no que me las
deje. Es decir que solo quite del conjunto de datos aquellas observaciones
en donde para la misma observación evolucionsi=0 y evolucionno>0 (me había
equivocado antes aquí). Pero este requisito se tiene que dar para la misma
observación, sino no me vale.

Gracias!

El Lun, 23 de Octubre de 2017, 2:09, Freddy Omar López Quintero escribió:
#
Oh no, he leído mal. 

Solo cambia la condición de == a !=:

filter(Datos, evolucionsi!=0, evolucionno != 1)

No olvides leer las ayudas que ofrecen las mismas funciones. Por ejemplo acá: http://dplyr.tidyverse.org/reference/filter.html <http://dplyr.tidyverse.org/reference/filter.html>.

¡Salud!


«...homines autem hominum causa esse generatos...»

Cicero
#
Gracias...sí pero creo que no me has entendido...El código tampoco es el
que necesito. Necesito todas las observaciones de Datos, excepto aquellas
para las que se cumpla conjuntamente que evollucionsi=0 y evolucionno>0.

El Lun, 23 de Octubre de 2017, 3:46, Freddy Omar López Quintero escribió:
#
Gracias...sí pero creo que no me has entendido...El código tampoco es el
que necesito. Necesito todas las observaciones de Datos, excepto aquellas
para las que se cumpla conjuntamente que evollucionsi=0 y evolucionno>0.

El Lun, 23 de Octubre de 2017, 3:46, Freddy Omar López Quintero escribió:
#
Datos[!(Datos$evolucionsi==0 & Datos$evolucionno==0),]




El 23/10/2017 a las 2:00, miriam.alzate en unavarra.es escribió:

  
    
#
El lun, 23-10-2017 a las 03:54 +0200, miriam.alzate en unavarra.es
escribió:
Ok, ha quedado claro que yo no he entendido, pero esa misma lógica que
mencionas (que debe ser muy fácil) es la que debes incluir en tu
filtro, sea cual fuere ¿podrías intentarlo, tal vez?. Reemplaza los
iguales, desiguales, mayores o menores en él y se acabó.
#
Hola, se filtra así:

datos2<-subset(datos, !(evolucionsi==0&evolucionno==0))

Con esto creas un subgrupo de datos que cumple esas condiciones. Si en
lugar de AND quieres usar OR entonces el símbolo lo cambias a |
El símbolo de admiración ! es una negación NOT; por tanto te quedas con los
datos tales que ni evolucionsi vale 0 ni evolucionno vale 0.

Saludos.

El 23 de octubre de 2017, 11:27, Freddy Omar López Quintero <
freddy.vate01 en gmail.com> escribió:

  
    
#
Perfecto, ahora sí funciona.

Muchas gracias!

Miriam

El Lun, 23 de Octubre de 2017, 9:04, Marcelino de la Cruz Rot escribió:
#
Muchas gracias. Si ahora funciona con ese código.

Gracias


El Lun, 23 de Octubre de 2017, 11:37, Alberto Carmona Bayonas escribió:
#
Perdón Freddy, no pretendía que te molestara. Filtrando de una forma
normal no servía, por eso pregunté, porque tras intentarlo no me salía  y
había algo que se me escapaba.

Gracias por las respuestas, finalmente he conseguido resolverlo con alguna
respuesta.

Un saludo,

El Lun, 23 de Octubre de 2017, 11:27, Freddy Omar López Quintero escribió: