[R-es] Filtrado de variables

Álvaro Hernández alvarohv en um.es
Jue Feb 22 20:26:39 CET 2018


La opción de Carlos con dplyr también se podría simplificar un poco 
haciendo los dos 'summarize' a la vez:

DF %>%
   group_by(MES) %>%
   summarize(num_mes = n(), hw_na = sum(RESULTADO == " NA ")) %>%
   filter(num_mes == hw_na)

Un saludo
Álvaro

El 22/02/18 a las 19:18, Javier Nieto escribió:
> Tienes raz�n Carlos. No entend� bien la duda. Me quedo con tu soluci�n.
>
>
> Saludos
>
> ________________________________
> De: Carlos Ortega <cof en qualityexcellence.es>
> Enviado: jueves, 22 de febrero de 2018 11:13:55 a. m.
> Para: Javier Nieto
> CC: Freddy Omar L�pez Quintero; Lista R.
> Asunto: Re: [R-es] Filtrado de variables
>
> Ya... de esta forma tampoco obtienes el mes que tiene todos sus valores NA...que es la duda ..
>
> Otra forma m�s sencilla con data.table que la que envi� anteriormente...
>
>> Lines <- "MES|VARIABLE|RESULTADO|
> + 1|A|SI|
> + 1|B|SI|
> + 1|C|NO|
> + 2|A|NA|
> + 2|B|SI|
> + 2|C|SI|
> + 3|A|NO|
> + 3|B|NO|
> + 3|C|NO|
> + 4|A|NA|
> + 4|B|NA|
> + 4|C|NA|"
>> DF <- read.table(textConnection(Lines), header = TRUE, as.is<http://as.is> = TRUE,  sep = "|")
>> DF$X <- NULL
>>
>> #---------------------
>> library(data.table)
>> DT <- as.data.table(DF)
>> DT[ ,  all(is.na<http://is.na>(RESULTADO)), by=c("MES")][ V1 == TRUE]
>     MES   V1
> 1:   4 TRUE
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es<http://www.qualityexcellence.es>
>
> El 22 de febrero de 2018, 17:58, Javier Nieto <mac_javi en hotmail.com<mailto:mac_javi en hotmail.com>> escribi�:
>
> Hola,
>
>
> un poco m�s compacto, mi soluci�n es la siguiente:
>
>
> DF[is.na<http://is.na>(DF$RESULTADO), ]
>
>
> si se requiere un conteo, con nrow aplicado al resultado anterior.
>
>
>
> donde DF es un data frame con la informaci�n.
>
>
> Saludos
>
> ________________________________
> De: R-help-es <r-help-es-bounces en r-project.org<mailto:r-help-es-bounces en r-project.org>> en nombre de Freddy Omar L�pez Quintero <freddy.vate01 en gmail.com<mailto:freddy.vate01 en gmail.com>>
> Enviado: jueves, 22 de febrero de 2018 10:10:04 a. m.
> Para: Carlos Ortega
> CC: Lista R.
> Asunto: Re: [R-es] Filtrado de variables
>
> Es cierto, una vez m�s entend� todo mal. Mis disculpas.
>
> La soluci�n con SQL no va nada corta, me parece:
>
> # filtrar el mes en el que todos los campos de la columna RESULTADO son NA
>
> sqldf("
> select *
> from DF
> where mes in
> (
>      select a.mes from
>      (
>          select mes, count(*) as total_NA
>          from
>          (select *
>          from DF
>          where resultado=' NA ')
>          group by mes
>      ) a,
>      (
>          select mes, count(*) as total_MES
>          from DF
>          group by mes
>      ) b
>
>      where total_na=total_mes and a.mes=b.mes
>
>      )
> ")
>
> �Salud!
>
> 2018-02-22 9:01 GMT-03:00 Carlos Ortega <cof en qualityexcellence.es<mailto:cof en qualityexcellence.es>>:
>
>> Nope..,
>>
>> S�, puede ser "sqldf" pero de esta forma no te muestra los meses que
>> tienen todos sus meses con "NA"..
>> Tienes que hacer primero un conteo de meses y luego un "left join" con el
>> conteo de "NAs" por mes y quedarte con el mes que tiene los dos valores
>> iguales (n�mero de meses y n�mero de NAs)...
>>
>> Estaba probando la opci�n, pero no he terminado de completarla...
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es<http://www.qualityexcellence.es>
>>
>> El 22 de febrero de 2018, 12:53, Freddy Omar L�pez Quintero <
>> freddy.vate01 en gmail.com<mailto:freddy.vate01 en gmail.com>> escribi�:
>>
>>> El jue, 22-02-2018 a las 09:52 +0100, Carlos Ortega escribi�:
>>>
>>> Aqu� tienes un par de formas...
>>>
>>>
>>> ... y a�n una m�s, con el siempre fiel lenguaje SQL:
>>>
>>>
>>> library(sqldf)
>>>
>>> # corriendo antes lo que hizo don Carlos pero dej�ndolo como un data.frame tradicional:
>>>
>>> DF<-as.data.frame(DF)
>>>
>>> sqldf("select * from DF where resultado=' NA '")
>>>
>>>
>>> �Saludos!
>>>
>>>
>>> --
>>>
>>> �...homines autem hominum causa esse generatos...�
>>>
>>> Cicero
>>>
>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es<http://www.qualityexcellence.es>
>>
>
>
> --
> �...my role is to be on the bottom of things.�
>
> Donald Knuth
>
>          [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org<mailto:R-help-es en 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]]
>
>
>
> _______________________________________________
> 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