
Este problema é bastante conhecido no R. Por exemplo, teste o seguinte: x <- .2 y <- 1-.8 x y x == y sprintf("%.50f", x) sprintf("%.50f", y) Veja que, em teoria, esperaríamos que x fosse igual a y, mas isto não ocorre devido aos erros de ponto flutuante do R. O teu código tem o mesmo problema. No teu caso específico, sugiro eliminar os valores que são outliers sem digitá-los no R. Utilize diretamente o valor calculado pelo programa. Por exemplo, set.seed(1507) index <- 1:1000 SCD <- rnorm(1000) data <- data.frame(index, SCD) outliers <- boxplot.stats(data$SCD)$out outliers.index <- match(data$SCD, outliers) data <- data[is.na(outliers.index), ] dim(data) 2016-07-15 15:15 GMT-03:00 Elias Carvalho via R-br <r-br@listas.c3sl.ufpr.br
:
Boa Tarde Pessoal
Eu preciso remover outliers do meu banco de dados, então executei o seguinte comando:
outlier_values <- boxplot.stats(data$SCD)$out
Resultado foi esse:
outlier_values [1] 20.98965
Porém quando tento remover com o comando abaixo, nada é removido:
data <- data[!(data$SCD)==20.98965,]
Comparando na mão os valores, vejo que a variável em determinada linha tem o valor correpondente:
data$SCD[152] [1] 20.98965
No entanto, quando faço a comparação entre os dois valores que aparentemente são iguais, o resultado é falso:
data$SCD[152]==20.98965 [1] FALSE
Alguém poderia me dar uma ajuda e uma dica de como remover essa linha ?
Obrigado
Elias
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
-- Marcus Nunes http://marcusnunes.me/