Я хочу идентифицировать выбросы с группой по нескольким столбцам и обработать выбросы значениями 95% и 5%. Я создал функцию для обработки выбросов, как показано ниже.
fun_name <- function(data,x){
qnt <- quantile(data$x, probs=c(.25, .75), na.rm = T)
caps <- quantile(data$x, probs=c(.05, .95), na.rm = T)
H <- 1.5 * IQR(data$x, na.rm = T)
data[which(data$x < (qnt[1] - H)),"x"] <- caps[1]
data[which(data$x > (qnt[2] + H)),"x"] <- caps[2]
return(data)
}
Я пытался, как показано ниже, вменять выбросы с помощью группы:
total_data <- data%>%
group_by(col1,col2,col3,col4)%>%
mutate(fun_name(data,col5)) ## col5 is of numric type.
Я получаю ошибку:
Column `fun_name(data,col5)` is of unsupported class data.frame
Где я ошибся? предложи мне.