[R-es] Problema con filtros de datos en un data.frame
Jorge I Velez
jorgeivanvelez en gmail.com
Sab Sep 7 02:47:05 CEST 2013
Hola Eric,
Si tienes una condicion, usa == ; cuando tengas mas de una, usa %in%.
Saludos,
Jorge.-
Sent from my phone. Please excuse my brevity and misspelling.
On Sep 6, 2013, at 6:49 PM, neo <ericconchamunoz en gmail.com> wrote:
> Me funciono perfecto, muchas gracias Carlos ... si no es mucha la
> molestia, alguien podria explicarme la diferencia tecnica entre ambos
> signos, y porque == produce el resultado que produce ? en que casos
> deberia usar == y en que casos %in% ... cual es el significado de cada
> uno ?
>
> Disculpen que no me conforme solo con obtener el resultado adecuado, es
> solo que no me suena logico que == no produzca el resultado que uno se
> imagina al ver el signo :)
>
> Saludos cordiales y muchas gracias,
>
> Eric.
>
>
>
>
>
> On Fri 06 Sep 2013 07:25:43 PM CLT, Carlos J. Gil Bellosta wrote:
>> Hola, ¿qué tal?
>>
>> No uses == sino %in%.
>>
>> Un saludo,
>>
>> Carlos J. Gil Bellosta
>> http://www.datanalytics.com
>>
>> El día 7 de septiembre de 2013 00:57, neo <ericconchamunoz en gmail.com> escribió:
>>> Estimados, tengo el siguiente problema: estoy trabajando con un
>>> data.frame que tiene 892 filas y 9 columnas, el cual adjunto para que
>>> puedan probar.
>>>
>>> Cuando consulto por las filas que cumplen una cierta condicion, por
>>> ejemplo, ...
>>>
>>> graph[graph$NCar==c("160s"),]
>>>
>>> obtengo el siguiente conjunto de datos:
>>>
>>> sol con dia NCar NIns isom area rep tipo
>>> 1 con 0.001 1 160s 0 s 0.6083543 1
>>> 8 con 0.001 2 160s 0 s 0.6388484 1 <NA>
>>> 10 con 0.001 3 160s 0 s 0.6873404 1 <NA>
>>> 13 con 0.001 4 160s 0 s 0.6476428 1 <NA>
>>> 20 con 0.001 1 160s 0 s 0.6094205 2 <NA>
>>> 23 con 0.001 3 160s 0 s 0.6624022 2 <NA>
>>> 25 con 0.001 4 160s 0 s 0.6486783 2 <NA>
>>> 31 con 0.001 1 160s 0 s 0.6131645 3 <NA>
>>> 34 con 0.001 4 160s 0 s 0.6788893 3 <NA>
>>> 36 dec 0.051 2 160s 0 s 0.6822148 1 <NA>
>>> 39 dec 0.051 3 160s 0 s 0.6661846 1 <NA>
>>> 41 dec 0.051 4 160s 0 s 0.6575084 1 <NA>
>>> 43 dec 0.051 5 160s 0 s 0.6233795 1 <NA>
>>> 45 dec 0.051 2 160s 0 s 0.6158327 2 <NA>
>>> ...
>>>
>>> Cuando amplio el conjunto de datos, haciendo mas flexible el filtro, por
>>> ejemplo:
>>>
>>> graph[graph$NCar==c("160s","180s"),]
>>>
>>> obtengo este otro conjunto de datos:
>>>
>>>
>>> sol con dia NCar NIns isom area rep tipo
>>> 1 con 0.001 1 160s 0 s 6.083543e-01 1
>>> 4 con 0.001 1 180s 0 s 3.791027e-01 1 <NA>
>>> 13 con 0.001 4 160s 0 s 6.476428e-01 1 <NA>
>>> 18 con 0.001 4 180s 0 s 3.378795e-01 1 <NA>
>>> 23 con 0.001 3 160s 0 s 6.624022e-01 2 <NA>
>>> 24 con 0.001 3 180s 0 s 3.375978e-01 2 <NA>
>>> 25 con 0.001 4 160s 0 s 6.486783e-01 2 <NA>
>>> 28 con 0.001 4 180s 0 s 3.457121e-01 2 <NA>
>>> 31 con 0.001 1 160s 0 s 6.131645e-01 3 <NA>
>>> 32 con 0.001 1 180s 0 s 3.816533e-01 3 <NA>
>>> 39 dec 0.051 3 160s 0 s 6.661846e-01 1 <NA>
>>> 40 dec 0.051 3 180s 0 s 3.338154e-01 1 <NA>
>>> 41 dec 0.051 4 160s 0 s 6.575084e-01 1 <NA>
>>> 42 dec 0.051 4 180s 0 s 3.424916e-01 1 <NA>
>>> 43 dec 0.051 5 160s 0 s 6.233795e-01 1 <NA>
>>> ...
>>>
>>> mi pregunta es porque no aparecen algunos datos como el siguiente:
>>>
>>> sol con dia NCar NIns isom area rep tipo
>>> 8 con 0.001 2 160s 0 s 0.6388484 1 <NA>
>>>
>>>
>>> el que segun yo deberia aparecer, ya que el filtro es menos restrictivo
>>> y el segundo conjunto de datos deberia contener el primero.
>>>
>>> Alguien puede orientarme en que estoy haciendo mal ?
>>>
>>> Saludos a todos y gracias de antemano.
>>>
>>> Eric.
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-es en r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
Más información sobre la lista de distribución R-help-es