用平均值替换数据框的异常值
Replace outliers of a dataframe with the mean value
我想找到数据框中的所有异常值并用变量(列)的平均值替换它们。
这是一个大数据框,由46个obs组成。 147 个变量。
我正在考虑做类似
的事情
new_df <- for (i in scaled.df){
i[!i %in% boxplot.stats(i)$out]
然后替换 NULL 值,但是该函数创建了一个 NULL 对象,我认为原因是创建的新向量的长度不相同。
有什么想法吗?感谢
你可以写一个函数来做这个-
replace_outlier_with_mean <- function(x) {
replace(x, x %in% boxplot.stats(x)$out, mean(x))
}
申请多列可以使用lapply
-
scaled.df[] <- lapply(scaled.df, replace_outlier_with_mean)
或在dplyr
-
library(dplyr)
scaled.df %>% mutate(across(.fns = replace_outlier_with_mean))
我想找到数据框中的所有异常值并用变量(列)的平均值替换它们。
这是一个大数据框,由46个obs组成。 147 个变量。
我正在考虑做类似
的事情new_df <- for (i in scaled.df){
i[!i %in% boxplot.stats(i)$out]
然后替换 NULL 值,但是该函数创建了一个 NULL 对象,我认为原因是创建的新向量的长度不相同。
有什么想法吗?感谢
你可以写一个函数来做这个-
replace_outlier_with_mean <- function(x) {
replace(x, x %in% boxplot.stats(x)$out, mean(x))
}
申请多列可以使用lapply
-
scaled.df[] <- lapply(scaled.df, replace_outlier_with_mean)
或在dplyr
-
library(dplyr)
scaled.df %>% mutate(across(.fns = replace_outlier_with_mean))