Jak przekonwertować liczbę na współczynnik w r (z przykładami)


Istnieją dwie metody, których można użyć do konwersji zmiennej numerycznej na zmienną silniową w R:

Metoda 1: Użyj as.factor()

 df$factor_variable <- as. factor (df$numeric_variable)

Spowoduje to konwersję zmiennej numerycznej na zmienną czynnikową o liczbie poziomów równej liczbie unikalnych wartości w oryginalnej zmiennej numerycznej.

Metoda 2: Użyj cięcia()

 df$factor_variable <- cut(df$numeric_variable, 3 , labels=c(' lab1 ', ' lab2 ', ' lab3 '))

W tym konkretnym przykładzie zmienna numeryczna zostanie przekształcona w zmienną silniową poprzez „cięcie” zmiennej numerycznej na 3 wartości rozmieszczone w równych odstępach.

Poniższe przykłady pokazują, jak w praktyce wykorzystać każdą metodę z następującą ramką danych w 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

Przykład 1: Konwersja liczby na współczynnik za pomocą funkcji as.factor()

Poniższy kod pokazuje, jak użyć funkcji as.factor() do konwersji kolumny punktowej z wartości liczbowej na współczynnik:

 #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

Używając funkcji str() do wizualizacji struktury ramki danych, możemy zobaczyć, że kolumna punktów jest teraz czynnikiem z 7 różnymi poziomami reprezentującymi 7 unikalnych wartości liczbowych w kolumnie.

Przykład 2: Konwersja liczby na współczynnik za pomocą metody cut()

Poniższy kod pokazuje, jak użyć metody cut() do przekształcenia kolumny punktów ze zmiennej numerycznej na trzypoziomową zmienną współczynnikową:

 #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

Na podstawie wyniku widzimy, że zmienna punktów została przekonwertowana ze zmiennej numerycznej na zmienną czynnikową o trzech poziomach i następujących etykietach:

  • „W PORZĄDKU”
  • „DOBRY”
  • „Świetnie”

Zauważ, że w tym przykładzie zdecydowaliśmy się użyć trzech poziomów, ale możesz podzielić zmienną numeryczną na dowolną liczbę poziomów, zastępując 3 w funkcji wycinania() inną wartością.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak przekonwertować liczbę na znak w R
Jak przekonwertować współczynnik na liczbę w R
Jak przekonwertować współczynnik na znak w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *