Hoe na te vervangen door mediaan in r
U kunt de volgende methoden gebruiken om NA-waarden te vervangen door de mediaan met behulp van functies uit de dplyr- en Tidyr -pakketten in R:
Methode 1: Vervang NA-waarden door de mediaan in een kolom
df %>% mutate(across(col1, ~replace_na(., median(., na. rm = TRUE ))))
Methode 2: NA-waarden vervangen door mediaan in meerdere kolommen
df %>% mutate(across(c(col1, col2), ~replace_na(., median(., na. rm = TRUE ))))
Methode 3: Vervang NA-waarden door mediaan in alle numerieke kolommen
df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met het volgende dataframe:
#create data frame df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'), points=c(17, 13, NA, 9, 25), rebounds=c(3, 4, NA, NA, 8), blocks=c(1, 1, 2, 4, NA)) #view data frame df player points rebounds blocks 1 to 17 3 1 2 B 13 4 1 3 C NA NA 2 4 D 9 NA 4 5 E 25 8 NA
Voorbeeld 1: NA-waarden vervangen door de mediaan in een kolom
De volgende code laat zien hoe je de NA-waarden in de puntkolom vervangt door de mediaanwaarde van de puntkolom :
library (dplyr) library (tidyr) #replace NA values in points column with median of points column df <- df %>% mutate(across(points, ~replace_na(., median(., na. rm = TRUE )))) #view updated data frame df player points rebounds blocks 1 to 17 3 1 2 B 13 4 1 3 C 15 NA 2 4 D 9 NA 4 5 E 25 8 NA
De mediaanwaarde in de puntenkolom was 15, dus de NA-waarde in de puntenkolom werd vervangen door 15.
Alle overige kolommen bleven ongewijzigd.
Voorbeeld 2: NA-waarden vervangen door mediaan in meerdere kolommen
De volgende code laat zien hoe u de NA-waarden in de punt- en blokkolommen vervangt door hun respectievelijke kolommedianen:
library (dplyr) library (tidyr) #replace NA values in points and blocks columns with their respective medians df <- df %>% mutate(across(c(points, blocks), ~replace_na(., median(., na. rm = TRUE )))) #view updated data frame df player points rebounds blocks 1 to 17 3 1.0 2 B 13 4 1.0 3 C 15 NA 2.0 4 D 9 NA 4.0 5 E 25 8 1.5
Merk op dat de NA-waarden in de punt- en blokkolommen beide zijn vervangen door hun respectievelijke kolommedianen.
Voorbeeld 3: NA-waarden vervangen door mediaan in alle numerieke kolommen
De volgende code laat zien hoe u de NA-waarden in elke numerieke kolom vervangt door hun respectievelijke mediaanwaarde:
library (dplyr) library (tidyr) #replace NA values in all numeric columns with their respective medians df <- df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE )))) #view updated data frame df player points rebounds blocks 1 to 17 3 1.0 2 B 13 4 1.0 3 C 15 4 2.0 4 D 9 4 4.0 5 E 25 8 1.5
Merk op dat de NA-waarden in alle numerieke kolommen zijn vervangen door hun respectievelijke kolommedianen.
De enige kolom die niet numeriek was (speler) bleef ongewijzigd.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in dplyr uitvoert:
Hoe u rijen kunt filteren die een bepaalde tekenreeks bevatten met behulp van dplyr
Rijen verwijderen met dplyr
Hoe de cross()-functie in dplyr te gebruiken