Een numeriek getal omzetten in een factor in r (met voorbeelden)
Er zijn twee methoden die u kunt gebruiken om een numerieke variabele naar een factoriële variabele in R te converteren:
Methode 1: Gebruik as.factor()
df$factor_variable <- as. factor (df$numeric_variable)
Hierdoor wordt de numerieke variabele omgezet naar een factorvariabele met een aantal niveaus gelijk aan het aantal unieke waarden in de oorspronkelijke numerieke variabele.
Methode 2: Gebruik cut()
df$factor_variable <- cut(df$numeric_variable, 3 , labels=c(' lab1 ', ' lab2 ', ' lab3 '))
Dit specifieke voorbeeld converteert de numerieke variabele naar een factoriële variabele door de numerieke variabele in 3 op gelijke afstanden geplaatste waarden te „knippen“.
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met het volgende dataframe in R:
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'C', 'D'),
points=c(12, 15, 22, 29, 35, 24, 11, 24))
#view data frame
df
team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24
#view structure of data frame
str(df)
'data.frame': 8 obs. of 2 variables:
$ team: chr "A" "A" "B" "B" ...
$ points: num 12 15 22 29 35 24 11 24
Voorbeeld 1: Converteer een getal naar een factor met as.factor()
De volgende code laat zien hoe u as.factor() gebruikt om de puntkolom van numeriek naar factor te converteren:
#convert points column from numeric to factor
df$points <- as. factor (df$points)
#view updated data frame
df
team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24
#view updated structure of data frame
str(df)
'data.frame': 8 obs. of 2 variables:
$ team: chr "A" "A" "B" "B" ...
$ points: Factor w/ 7 levels "11","12","15",..: 2 3 4 6 7 5 1 5
Door de functie str() te gebruiken om de structuur van het dataframe te visualiseren, kunnen we zien dat de kolom met punten nu een factor is met 7 verschillende niveaus die de 7 unieke numerieke waarden in de kolom vertegenwoordigen.
Voorbeeld 2: Converteer een numeriek getal naar een factor met cut()
De volgende code laat zien hoe u cut() gebruikt om de kolom met punten van een numerieke variabele naar een factorvariabele met 3 niveaus te converteren:
#convert points column from numeric to factor with three levels
df$points <- cut(df$points, 3 , labels=c(' OK ', ' Good ', ' Great '))
#view updated data frame
df
team points
1 A OK
2 A OK
3 B Good
4 B Great
5 C Great
6 C Good
7 C OK
8 D Good
#view updated structure of data frame
str(df)
'data.frame': 8 obs. of 2 variables:
$ team: chr "A" "A" "B" "B" ...
$ points: Factor w/ 3 levels "OK","Good","Great": 1 1 2 3 3 2 1 2
Uit het resultaat kunnen we zien dat de puntenvariabele is geconverteerd van een numerieke variabele naar een factorvariabele met drie niveaus en de volgende labels:
- „OKE“
- „GOED“
- „Geweldig“
Merk op dat we er in dit voorbeeld voor hebben gekozen om drie niveaus te gebruiken, maar voel je vrij om de numerieke variabele in zoveel niveaus te knippen als je wilt door de 3 in de functie cut() te vervangen door een andere waarde.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe numeriek naar teken te converteren in R
Hoe een factor naar numeriek te converteren in R
Hoe factor naar karakter te converteren in R