Hoe u meerdere kolommen naar factoren kunt converteren met behulp van dplyr


U kunt de volgende methoden gebruiken om meerdere kolommen naar factoren te converteren met behulp van functies in het dplyr- pakket:

Methode 1: Converteer specifieke kolommen naar factor

 library (dplyr) 

df %>% mutate_at(c(' col1 ', ' col2 '), as. factor )

Methode 2: Converteer alle tekenkolommen naar factor

 library (dplyr)

df %>% mutate_if(is. character , as. factor )

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.  

Voorbeeld 1: Converteer specifieke kolommen naar factor

Stel dat we het volgende dataframe in R hebben:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 starter=c('Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N'),
                 points=c(12, 24, 25, 35, 30, 14, 19, 11))

#view structure of data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: chr "A" "A" "A" "B" ...
 $position: chr "G" "G" "F" "F" ...
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

We kunnen zien dat de kolommen team , positie en starter karakters zijn, terwijl de puntenkolom numeriek is.

Om alleen de team- en positiekolommen naar factoren te converteren, kunnen we de volgende syntaxis gebruiken:

 library (dplyr) 

#convert team and position columns to factor
df <- df %>% mutate_at(c(' team ', ' position '), as. factor )

#view structure of updated data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 3 3 4
 $ position: Factor w/ 2 levels "F","G": 2 2 1 1 2 2 1 1
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

We kunnen zien dat de team- en positiekolommen nu beide factoren zijn.

Voorbeeld 2: Converteer alle tekenkolommen naar factor

Stel dat we het volgende dataframe in R hebben:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 starter=c('Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N'),
                 points=c(12, 24, 25, 35, 30, 14, 19, 11))

#view structure of data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: chr "A" "A" "A" "B" ...
 $position: chr "G" "G" "F" "F" ...
 $ starter: chr "Y" "Y" "Y" "N" ...
 $ points: num 12 24 25 35 30 14 19 11

We kunnen zien dat drie van de kolommen in het dataframe karakterkolommen zijn.

Om alle karakterkolommen naar factoren te converteren, kunnen we de volgende syntaxis gebruiken:

 library (dplyr) 

#convert all character columns to factor
df <- df %>% mutate_if(is. character , as. factor )

#view structure of updated data frame
str(df)

'data.frame': 8 obs. of 4 variables:
 $ team: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 3 3 4
 $ position: Factor w/ 2 levels "F","G": 2 2 1 1 2 2 1 1
 $ starter: Factor w/ 2 levels "N","Y": 2 2 2 1 1 2 1 1
 $ points: num 12 24 25 35 30 14 19 11

We kunnen zien dat alle karakterkolommen nu factoren zijn.

Opmerking : Raadpleeg de dplyr-documentatiepagina voor een volledige uitleg van de functies mute_at en mute_if .

Aanvullende bronnen

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

Hoe meerdere kolommen naar numeriek te converteren met dplyr
Hoe een factor naar numeriek te converteren in R
Hoe een datum naar numeriek in R te converteren

Einen Kommentar hinzufügen

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