【发布时间】:2019-09-08 18:04:01
【问题描述】:
我想用 NA 替换数据框每一列中的异常值。
例如,如果我们将异常值定义为与平均值相差 3 个标准差的任何值,我可以使用以下代码实现此每个变量。
我不想单独指定每一列,我想在一次调用中对df 的所有列执行相同的操作。有关如何执行此操作的任何指示?!
谢谢!
library(dplyr)
data("iris")
df <- iris %>%
select(Sepal.Length, Sepal.Width, Petal.Length)%>%
head(10)
# add a clear outlier to each variable
df[1, 1:3] = 99
# replace values above 3 SD's with NA
df_cleaned <- df %>%
mutate(Sepal.Length = replace(Sepal.Length, Sepal.Length > (abs(3 * sd(df$Sepal.Length, na.rm = TRUE))), NA))
【问题讨论】: