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/