我正在尝试构建一个自定义函数来检测数据集上的离群值。应该返回的输出与函数identify_outliers in rstatix()
相同
identify_outliers_custom <- function(dt, values) {
q1 <- quantile(dt)[2]
q3 <- quantile(dt)[4]
iqr <- q3 - q1
lower_bound <- q1 - 1.5* iqr
upper_bound <- q3 + 1.5* iqr
dt$is.outlier <- ifelse(dt > upper_bound | dt < lower_bound, TRUE, FALSE)
dt$is.extreme <- ifelse(dt > q3 + 3 * iqr | dt < q1 - 3 * iqr, TRUE, FALSE)
return(dt)
}
无论如何,通过在数据集上应用这个函数,它返回一个错误
mtcars %>% identify_outliers_custom(mpg)
Error in xtfrm.data.frame(x) : it is not possible xtfrm the data frame
如何纠正?
1条答案
按热度按时间gopyfrb31#
您在自定义函数中的错误位置使用了
dt
。可以通过向quantile
函数传递 Dataframe 来重现错误。xtfrm.data.frame(x)错误:无法xtfrm Dataframe
你可以试试这个功能。