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