<div>Vinicius, tenta assim:</div><div><br></div>subset(dados,<b>dados$z %in% filtro</b>,drop=F)<div><br></div><div><br></div><div><br><br><div class="gmail_quote">2011/7/25 Vinicius Brito Rocha <span dir="ltr"><<a href="mailto:viniciusbritor@gmail.com">viniciusbritor@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Esse é o problema,<br><br>não quero ter que escrever todas as retrições. Uma vez que as mesmas estão armazenadas em uma variável gostaria de saber se é possível algo do tipo:<br>
<br>x=rnorm(100)<br>y=rpois(100,lamb=2)<br>z=as.factor(sample(c("A","B","C","D"),size=100,replace=T))<br>
<br>dados=data.frame(x,y,z)<br><br><br># filtros<br>filtro=as.factor(c("A","B","C"))<br><br># algo parecido com isso<br>subset(dados,dados$z==filtro,drop=F)<br># não quero ter que escrever todas as restriçoes:<br>

subset(dados,dados$z=="A"|<br>dados$z=="B"|dados$z=="C"<br>,drop=F)<br><br><br>Tem como?<br><br>Abs<br><br><br><div class="gmail_quote">Em 25 de julho de 2011 19:01, Jose Claudio Faria <span dir="ltr"><<a href="mailto:joseclaudio.faria@gmail.com" target="_blank">joseclaudio.faria@gmail.com</a>></span> escreveu:<div>
<div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Em relação ao email anterior, usando a distância interquartílica,<br>
ficaria algo assim:<br>
<br>
dadf <- na.omit(dad)<br>
<br>
dadf <- subset(dadf,<br>
               Idade < median(dadf[,1]) +<br>
               2.5*(quantile(dadf[,1])[4] -<br>
                    quantile(dadf[,1])[2]) &<br>
               Idade > median(dadf[,1]) -<br>
               2.5*(quantile(dadf[,1])[4] -<br>
                    quantile(dadf[,1])[2]) &<br>
               Tempo < median(dadf[,2]) +<br>
               2.5*(quantile(dadf[,2])[4] -<br>
                    quantile(dadf[,2])[2]) &<br>
               Tempo > median(dadf[,2]) -<br>
               2.5*(quantile(dadf[,2])[4] -<br>
                    quantile(dadf[,2])[2]))<br>
<br>
E você pode ir adicionando outros critérios nesse mesmo subset ou em<br>
subsequentes, para não ficar muito complexo.<br>
<br>
Dá um trabalhinho, sem dúvida, mas você sabe exatamente o que está fazendo.<br>
Adicionalmente, evita gastar muito tempo em busca de possíveis pacotes<br>
e estudo da documentação.<br>
<div><br>
Abs,<br>
--<br>
///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\<br>
Jose Claudio Faria<br>
Estatistica - Prof. Pleno<br>
UESC/DCET/Brasil<br>
joseclaudio.faria at <a href="http://gmail.com" target="_blank">gmail.com</a><br>
///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\<br>
<br>
<br>
</div>Em 25 de julho de 2011 18:38, Jose Claudio Faria<br>
<<a href="mailto:joseclaudio.faria@gmail.com" target="_blank">joseclaudio.faria@gmail.com</a>> escreveu:<br>
<div><div></div><div>> Vinicius,<br>
><br>
> A função subset é bem flexível e permite elevado nível de customização.<br>
> Geralmente uso ela para crítica dos dados, antecedendo análises.<br>
> Não seria interessante para você?<br>
><br>
> Por exemplo:<br>
><br>
> # gerando um data.frame com outliers<br>
> Idade <- c(NA, -10, rnorm(1e2, m=30, sd=2), 150)<br>
> Tempo <- c(rnorm(1e2, m=10, sd=1), NA, -50, 1e3)<br>
> dad <- data.frame(Idade, Tempo)<br>
><br>
> str(dad)<br>
><br>
> # verificar outliers<br>
> boxplot(dad, range=2.5)<br>
><br>
> # remoção de todas as linhas contendo NA<br>
> dadf <- na.omit(dad)<br>
><br>
> # remoção das linhas de forma mais criteriosa<br>
> dadf <- subset(dadf,<br>
>               Idade < 2.5*(median(dadf[, 1])) &<br>
>               Idade > 0                       &<br>
>               Tempo < 2.5*(median(dadf[, 2])) &<br>
>               Tempo > 0)<br>
> str(dadf)<br>
> boxplot(dadf, range=2.5) # verificar remoção de outiliers<br>
><br>
> Usei 2.5*mediana apenas por simpicidade didática.<br>
> Você poderia usar um critério mais consistente, por exemplo, um<br>
> múltiplo (1.5 a 2.5) da distância interquartílica.<br>
><br>
> Veja com calcular os quatis no R coma  função quantile:<br>
>> ?quantile<br>
><br>
> Abs,<br>
> --<br>
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\<br>
> Jose Claudio Faria<br>
> Estatistica - Prof. Pleno<br>
> UESC/DCET/Brasil<br>
> joseclaudio.faria at <a href="http://gmail.com" target="_blank">gmail.com</a><br>
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\<br>
><br>
><br>
><br>
> Em 25 de julho de 2011 10:45, Vinicius Brito Rocha<br>
> <<a href="mailto:viniciusbritor@gmail.com" target="_blank">viniciusbritor@gmail.com</a>> escreveu:<br>
>> Srs,<br>
>><br>
>> tenho uma data.frame onde preciso realizar um filtro do mesmo, a partir de<br>
>> uma das variáveis categóricas. Porém tenho uma lista de restrições dessa<br>
>> variável à filtrar.<br>
>> Escrever uma a uma cada restrição dará muito trabalho.<br>
>><br>
>> Alguém sabe como posso fazer isso de forma mais inteligente?<br>
>><br>
>> Abs<br>
>><br>
>> --<br>
>> Vinicius Brito Rocha.<br>
>> Estatístico e Atuário,<br>
>> Mestre em Pesquisa Operacional<br>
>><br>
>> <a href="http://www.aplicademic.blogspot.com" target="_blank">www.aplicademic.blogspot.com</a><br>
>> <a href="http://twitter.com/viniciusbritor" target="_blank">http://twitter.com/viniciusbritor</a><br>
>><br>
>> "Não se preocupe muito com as suas dificuldades em Matemática, posso<br>
>> assegurar-lhe que as minhas são ainda maiores." - Albert Einstein.<br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> R-br mailing list<br>
>> <a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
>> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
>> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código<br>
>> mínimo reproduzível.<br>
><br>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br>
</div></div></blockquote></div></div></div><br><br clear="all"><br>-- <br><div><div></div><div class="h5">Vinicius Brito Rocha.<br>Estatístico e Atuário,<br>Mestre em Pesquisa Operacional<br><br><a href="http://www.aplicademic.blogspot.com" target="_blank">www.aplicademic.blogspot.com</a><br>

<a href="http://twitter.com/viniciusbritor" target="_blank">http://twitter.com/viniciusbritor</a><br><br>"Não se preocupe muito com as suas dificuldades em Matemática, posso assegurar-lhe que as minhas são ainda maiores." - Albert Einstein.<br>

<br><br>
</div></div><br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>