小编sta*_*hat的帖子

如何检测单变量异常值并在新列中标记为 TRUE 或 FALSE

我有一个包含 30 列和 >10,000 行的数据框。

我如何对一组变量运行异常值分析,如果任何变量超过特定阈值(对于该给定变量),则返回 TRUE,如果不满足任何异常值阈值 (3SD),则返回 FALSE变量,TRUE/FALSE 值显示在新列中?

我使用分位数来找到每个变量的 3 个标准偏差截止值:

IE:

quantile(df$a, 0.003, na.rm = T) #and 

quantile(df$a, 0.997, na.rm = T)
Run Code Online (Sandbox Code Playgroud)

假设第一个值是 2.5,这个变量的上限值是 10.5,然后我创建了一个新变量:

df$outliers <- (df$a <- df$a <2.5 | df$a > 10.5)
Run Code Online (Sandbox Code Playgroud)

当 a 列中的值小于 2.5 或大于 10.5 时,它给出 TRUE 值。

我想做的是让 df$outliers 代表一组列的异常值状态,而不仅仅是一个列,即列 d、e、f、g、l、m 等,它们都有自己的阈值遇见。

做这个的最好方式是什么?

r outliers dataframe

5
推荐指数
1
解决办法
398
查看次数

标签 统计

dataframe ×1

outliers ×1

r ×1