如何从R中的箱形图中提取异常值

时间:2015-08-10 06:11:58

标签: r plot

如果有办法从箱形图中提取异常值,你能解释一下吗?我绘制了一个箱形图,我想只提取异常值。

以下是方框图的代码。

# melting down
require(reshape)
melt_nx <- melt(nx, id.vars = c("x", "y"))
boxplot(data = melt_nx, main = "NX", value ~ variable, las = 2,    
par(mar = c(15, 5, 4, 2) + 0.1),
names = c("We1", "We2", "we3"))

是否可以从方框图中仅提取异常值?

2 个答案:

答案 0 :(得分:5)

boxplot函数返回一个列表,其中一个节点名称为“out”。这些是超越“胡须”的价值观。我不知道在参数列表中执行par但是如果你想要这些特定的值,那么使用它:

vals <- boxplot(data = melt_nx, main = "NX", value ~ variable, las = 2,    
      names = c("We1", "We2", "we3"))
vals$out

并阅读所有这些帮助页面:

?boxplot
?boxplot.stats
?bxp
?fivenum

答案 1 :(得分:0)

我知道这已经得到了回答,但对我来说,还有另一种方法是使用 car 包中的 Boxplot 方法。注意Boxplot函数调用中的大写字母B.

这是为我做的代码,它会返回异常值的行号,然后您可以在数据帧中使用这些行来过滤或提取等等...

outliers<-Boxplot(x~y, data=df, id.method="y")

请注意,提取的值的类型为字符。然后要排除它们,你可以做类似的事情:

df2 <- df[-as.numeric(outliers),]

希望这有点帮助