Hoe kolommen met na-waarden in r te verwijderen


U kunt een van de volgende twee methoden gebruiken om kolommen uit een gegevensframe in R te verwijderen die NA-waarden bevatten:

Methode 1: Gebruik Base R

 df[, colSums(is. na (df))== 0 ]

Methode 2: gebruik dplyr

 library (dplyr)

df %>% select_if(~ !any(is. na (.)))

Beide methoden leveren hetzelfde resultaat op.

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met het volgende dataframe:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                 points=c(99, NA, NA, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, NA))

#view data frame
df

  team points assists rebounds
1 A 99 33 30
2 B NA 28 28
3 C NA 31 24
4 D 88 39 24
5 E 95 34 NA

Voorbeeld 1: Kolommen met NA-waarden verwijderen met behulp van Base R

De volgende code laat zien hoe u kolommen met NA-waarden verwijdert met behulp van standaard R-functies:

 #define new data frame
new_df <- df[ , colSums(is. na (df))== 0 ]

#view new data frame
new_df

  team assists
1 to 33
2 B 28
3 C 31
4 D 39
5 E 34

Merk op dat de twee kolommen met de NA-waarden (punten en rebounds) beide uit het dataframe zijn verwijderd.

Voorbeeld 2: Kolommen met NA-waarden verwijderen met dplyr

De volgende code laat zien hoe u kolommen met NA-waarden kunt verwijderen met behulp van functies in het dplyr- pakket:

 library (dplyr)

#define new data frame
new_df <- df %>% select_if(~ !any(is. na (.)))

#view new data frame
new_df

  team assists
1 to 33
2 B 28
3 C 31
4 D 39
5 E 34

Opnieuw werden de twee kolommen met de NA-waarden (punten en rebounds) beide uit het dataframe verwijderd.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Hoe u een kolom aan een dataframe toevoegt in R
Hoe dataframekolommen te hernoemen in R
Hoe een dataframe op kolom te sorteren in R

Einen Kommentar hinzufügen

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