我正在解决R练习,但我认为我可以使这个代码更优雅或更简单.我正在使用ggplot2中的钻石数据集.我必须从数字变量中删除异常值,并且异常值对我来说是一行,其中任何数值变量高于或低于中位数+/- 3倍MAD(中位数绝对偏差).我的实际代码是非常手动的:
library(dplyr)
filter(numeric.vars,
carat > median(carat) - 3 * mad(carat),
carat < median(carat) + 3 * mad(carat),
depth > median(depth) - 3 * mad(depth),
depth < median(depth) + 3 * mad(depth),
table > median(table) - 3 * mad(table),
table < median(table) + 3 * mad(table),
price > median(price) -3 * mad(price),
price < median(price) +3 * mad(price),
x > median(x) - 3 * mad(x),
x < median(x) + 3 * mad(x),
y > median(y) - 3 * mad(y),
y …Run Code Online (Sandbox Code Playgroud)