Come rimuovere i valori anomali da più colonne in r
Spesso potresti voler rimuovere i valori anomali da più colonne contemporaneamente in R.
Un modo comune per definire un’osservazione come valore anomalo è se è 1,5 volte l’intervallo interquartile al di sopra del terzo quartile (Q3) o 1,5 volte l’intervallo interquartile al di sotto del primo quartile (Q1).
Utilizzando questa definizione, possiamo utilizzare i passaggi seguenti per creare una semplice funzione per identificare i valori anomali e quindi applicare questa funzione su più colonne in un frame di dati R.
Passaggio 1: creare un frame di dati.
Iniziamo creando un frame di dati in R:
df <- data.frame(index=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), var1=c(4, 4, 5, 4, 3, 2, 8, 9, 4, 5), var2=c(1, 2, 4, 4, 6, 9, 7, 8, 5, 29), var3=c(9, 9, 9, 5, 5, 3, 4, 5, 11, 34))
Passaggio 2: definire la funzione outlier.
Successivamente, definiamo una funzione in grado di identificare i valori anomali e una funzione che può quindi rimuovere i valori anomali:
outliers <- function (x) { Q1 <- quantile(x, probs =.25) Q3 <- quantile(x, probs =.75) iqr = Q3-Q1 upper_limit = Q3 + (iqr*1.5) lower_limit = Q1 - (iqr*1.5) x > upper_limit | x < lower_limit } remove_outliers <- function (df, cols = names (df)) { for (col in cols) { df <- df[!outliers(df[[col]]),] } df }
Passaggio 3: applicare la funzione outlier al frame di dati.
Infine, applichiamo questa funzione su diverse colonne del data frame per rimuovere i valori anomali:
remove_outliers(df, c('var1', 'var2', 'var3')) index var1 var2 var3 1 1 4 1 9 2 2 4 2 9 3 3 5 4 9 4 4 4 4 5 5 5 3 6 5 9 9 4 5 11
Puoi trovare altri tutorial su R qui .