Een factor converteren naar numeriek in r (met voorbeelden)


We kunnen de volgende syntaxis gebruiken om een factorvector naar een numerieke vector in R te converteren:

 numeric_vector <- as. numeric (as. character (factor_vector))

We moeten de factorvector eerst omzetten in een karaktervector en vervolgens in een numerieke vector. Dit zorgt ervoor dat de numerieke vector de daadwerkelijke numerieke waarden bevat in plaats van factorniveaus.

Deze tutorial biedt verschillende voorbeelden van praktisch gebruik van deze functie.

Voorbeeld 1: Converteer een factorvector naar numeriek

De volgende code laat zien hoe u een factorvector naar een numerieke vector converteert:

 #define factor vector
factor_vector <- factor(c(1, 5, 7, 8))

#convert factor vector to numeric vector
numeric_vector <- as. numeric (as. character (factor_vector))

#view class
class(numeric_vector)

[1] "digital"

Voorbeeld 2: Converteer een factorkolom naar numeriek

De volgende code laat zien hoe u een specifieke kolom in een factorgegevensframe naar numeriek converteert:

 #create data frame
df <- data. frame (a = factor(c(1, 5, 7, 8)),
b = c(28, 34, 35, 36))

#convert column 'a' from factor to numeric
df$a <- as. numeric (as. character (df$a))

#view new data frame
df

  ab
1 1 28
2 5 34
3 7 35
4 8 36

#confirm class of numerical vector
class(df$a)

[1] "digital"

Voorbeeld 3: Converteer kolommen met meerdere factoren naar numeriek

De volgende code laat zien hoe u alle factorkolommen in een factorgegevensframe converteert naar numerieke waarden:

 #create data frame
df <- data. frame (a = factor(c(1, 5, 7, 8)),
                 b = factor(c(2, 3, 4, 5)),
                 c = c('A', 'B', 'C', 'D'),
                 d = c(45, 56, 54, 57))

#display classes of each column
sapply(df, class)

       abcd
"factor" "factor" "character" "numeric" 

#identify all factor columns
x <- sapply (df, is. factor )

#convert all factor columns to numeric
df[, x] <- as. data . frame ( apply (df[, x], 2, as.numeric ))

#display classes of each column
sapply (df, class)

        abcd
"numeric" "numeric" "character" "numeric"

Deze code heeft de volgende wijzigingen aangebracht in de dataframekolommen:

  • Kolom a: Van postbode naar digitaal
  • Kolom b: Van postbode naar digitaal
  • Kolom c: Ongewijzigd (aangezien het een teken was)
  • Kolom d: ongewijzigd (omdat deze al numeriek was)

Met behulp van de functies apply() en sapply() konden we alleen de factorkolommen naar numerieke kolommen converteren en alle andere kolommen ongewijzigd laten.

Aanvullende bronnen

Hoe een teken naar een factor in R te converteren
Hoe factor naar karakter te converteren in R
Hoe een teken naar een tijdstempel te converteren in R

Einen Kommentar hinzufügen

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