Hoe u uitschieters uit meerdere kolommen in r kunt verwijderen


Vaak wilt u uitschieters uit meerdere kolommen tegelijk verwijderen in R.

Een gebruikelijke manier om een waarneming als uitbijter te definiëren is als deze 1,5 maal de interkwartielafstand boven het derde kwartiel (Q3) of 1,5 maal de interkwartielafstand onder het eerste kwartiel (Q1) ligt.

Met behulp van deze definitie kunnen we de volgende stappen gebruiken om een eenvoudige functie te maken om uitschieters te identificeren en deze functie vervolgens toe te passen op meerdere kolommen in een R-dataframe.

Stap 1: Maak een dataframe.

Laten we beginnen met het maken van een dataframe 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))

Stap 2: Definieer de uitbijterfunctie.

Laten we vervolgens een functie definiëren die uitschieters kan identificeren en een functie die vervolgens uitschieters kan verwijderen:

 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
}

Stap 3: Pas de uitbijterfunctie toe op het dataframe.

Laten we ten slotte deze functie toepassen op verschillende kolommen van het dataframe om uitschieters te verwijderen:

 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

Meer R-tutorials vindt u hier .

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert