[R-es] Filtrado de variables

Javier Nieto mac_javi en hotmail.com
Jue Feb 22 19:18:55 CET 2018


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]]



Más información sobre la lista de distribución R-help-es