Wprowadzenie do czynników w R.
W R możemy przetwarzać różne typy zmiennych. Możemy również przyjąć czynnik jako rodzaj zmiennej, która przyjmuje tylko ograniczoną liczbę przypisanych wartości; taka zmienna nazywana również zmienną kategorialną.
Zalety czynnika
- Może przechowywać zarówno liczby całkowite, jak i ciągi
1. W przypadku liczb całkowitych
data = c(5, 6, 6, 6, 7, 5, 7, 6, 7, 5, 6, 7)
factor_data = factor(data)
factor_data
Wynik
2. W przypadku strun
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"))
y
Wynik
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Wynik
- Bardzo przydatne, gdy kolumny mają ograniczoną liczbę unikalnych wartości
Nazwa | Tryb podróży |
Jan | Ciężarówka |
Shaw | Samochód |
Zawietrzny | Cykl |
Musan | Rower |
Lozy | Ciężarówka |
Riya | Samochód |
Mij | Cykl |
Tutaj mamy ograniczoną liczbę unikalnych wartości w kolumnie 2.
- Pomaga korygować ciągi za pomocą literówek (błędy pisowni).
Jak utworzyć czynnik w R?
Możemy tworzyć czynniki, używając kodu współczynniki ().
Dowiedz się więcej o factor ().
factor(x = character(), levels, labels = levels, ordered = is.ordered(x))
Gdzie,
X to zbiór danych kategorycznych. Jak już omówiliśmy, powinien to być ciąg znaków lub liczby całkowite.
Poziomy są zestawem wartości, które X może przyjąć. Poziomy zawierają wszystkie unikalne wartości dostępne w kolumnie (x).
Etykiety jako nazwa sugerują etykietowanie danych dostępnych w X.
Zamówienie określa, czy poziomy powinny być zamawiane w dowolnej kolejności.
Przykład 1
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike"))
y
Wynik:
Przykład nr 2
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Wynik:
W przykładzie 2 widzimy, że możemy również zdefiniować „Poziomy”.
Teraz zobaczmy więcej o czynnikach, używając Str (y).
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Wynik:
str(y)
Wynik:
Wyraźnie widać, że czynniki są przechowywane jako wektory całkowite, a poziomy są przechowywane jako wektor znakowy, a poszczególne elementy są faktycznie przechowywane jako wskaźniki.
- Teraz zobaczymy, jak uzyskać dostęp do składników czynnika
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Wynik:
y(2) # helps to access 2nd element
Wynik:
x(c(3, 4)) # helps to access 3rd and 4th element
Wynik
x(-1) # access all except 1st element
Wynik:
- Teraz zobaczymy, jak zmodyfikować czynnik.
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Wynik:
y(3) = "Truck" #modifty third element
y
Wynik
Dodając do czynnika:
y(10) = "Car"
y
Wynik:
Pamiętaj, że nie możemy przypisać niczego do czynnika, który nie jest częścią poziomów.
y(4) = "Plane"Warning message:In `(<-.factor`(`*tmp*`, 4, value = "Plane") : invalid factor level, NA generated
Wynik:
W tym przykładzie widzimy, że „płaszczyzna” nie jest częścią naszego poziomu, dlatego otrzymaliśmy komunikat ostrzegawczy, który mówi, że „płaszczyzna” jest nieprawidłowym poziomem czynnika.
Konwertuj dane na czynnik
Dane są dostępne w dużych ilościach i za każdym razem trudno jest zapisać pełne słowo w kodzie, więc w tym celu najpierw przekonwertujemy dane na czynnik, a następnie przekształcimy czynnik na znak lub liczbę zgodnie z naszą wygodą.
Pracujmy teraz nad prawdziwymi danymi. Tam, gdzie mamy 50 obserwacji, a wnioskodawcy podają kierunek swojej pracy. Tak jak John podróżuje na północ, aby wykonywać obowiązki służbowe, lub Sam jedzie na południe, aby wykonywać obowiązki służbowe.
direction <- c("West", "East", "North", "West", "South", "East", "South", "East", "South", "East", "South", "West", "South", "East", "South", "East", "South", "South", "West", "East", "South", "West", "South", "East", "South", "East", "South", "West", "East", "South", "West", "South", "East", "South", "East", "South", "South", "West", "South", "West", "East", "South", "West", "South", "East", "South", "East", "South", "South", "West")
direction.factor = factor(direction)
direction.factor
Wynik:
Poziomy: wschód północ południe zachód
Teraz, jeśli chcemy przekonwertować czynnik na wektor znaków:
Użyjemy kodu as.character ().
as.character(direction.factor)
Wynik:
Lub chcemy przekonwertować czynnik na wektor numeryczny:
Użyjemy kodu as.numeric ().
as.numeric(direction.factor)
Wynik:
Polecane artykuły
To jest przewodnik po Czynnikach w R. Tutaj omawiamy wprowadzenie, Zalety czynnika, Jak stworzyć czynnik w R wraz z Wyjściami. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -
- Spark SQL Dataframe
- R Typy danych
- Wielowymiarowa baza danych
- Potok danych AWS