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