所以,我有一个数据集,知道如何使用summary命令获取五个数字摘要。现在我需要让实例高于Q3 + 1.5IQR或低于Q1 - 1.5IQR,因为这些只是数字 - 我如何从高于数字或低于数字的数据集返回实例?
答案 0 :(得分:9)
您可以使用boxplot
获取此信息。如果你的变量是x,
OutVals = boxplot(x)$out
which(x %in% OutVals)
如果您对该情节感到恼火,可以使用
OutVals = boxplot(x, plot=FALSE)$out
答案 1 :(得分:2)
如果您的数据集为x
,则可以使用
summary(x)[["1st Qu."]]
和
summary(x)[["3rd Qu."]]
然后,您可以与这些数字进行比较,以获得您想要的数字。
答案 2 :(得分:0)
您可以在此回答here中参考功能remove_outliers
。它完全符合您的要求。
remove_outliers <- function(x, na.rm = TRUE, ...) {
qnt <- quantile(x, probs=c(.25, .75), na.rm = na.rm, ...)
H <- 1.5 * IQR(x, na.rm = na.rm)
y <- x
y[x < (qnt[1] - H)] <- NA
y[x > (qnt[2] + H)] <- NA
y
}
答案 3 :(得分:0)
如果您尝试使用1.5 * IQR标准识别数据集中的离群值,则有一个简单的函数可以为您提供每种情况的行号,该行号是基于分组变量的离群值(在Q1和高于第三季度)。还将创建数据的箱形图,以深入了解数据的分布。
library(car)
Boxplot(DV ~ IV, data = datafile)
位置:
DV = measured variable
IV = grouping variable