Bevezetés a tényezőkbe R
R-ben különféle típusú változókat tudunk feldolgozni. Faktort feltételezhetünk olyan típusú változóként is, amely csak korlátozott számú hozzárendelt értéket vesz fel; az ilyen változót kategorikus változónak is nevezik.
A tényező előnyei
- Tárolhat egész számot és karakterláncot is
1. Egész számok esetén
data = c(5, 6, 6, 6, 7, 5, 7, 6, 7, 5, 6, 7)
factor_data = factor(data)
factor_data
Kimenet
2. Húrok esetén
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"))
y
Kimenet
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Kimenet
- Nagyon hasznos, ha az oszlopok korlátozott számú egyedi értékkel rendelkeznek
Név | Az utazás módja |
János | Kamion |
Shaw | Autó |
Lee | Ciklus |
Musan | Bicikli |
lozy | Kamion |
Riya | Autó |
mij | Ciklus |
Itt van korlátozott számú egyedi érték a 2. oszlopban.
- Ez segíti a karakterláncok helyesbítését (gépelési hibák).
Hogyan lehet faktorot létrehozni az R-ben?
Kódfaktorok () használatával hozhatunk létre tényezőket.
Tudjon meg többet a () tényezőről.
factor(x = character(), levels, labels = levels, ordered = is.ordered(x))
Hol,
X kategorikus adatok halmaza. Mint már tárgyaltuk, húrnak vagy egész számnak kell lennie.
A szintek értékkészlet, amelyet az X vehet fel. A Szintek az (x) oszlopban elérhető összes egyedi értéket tartalmazzák.
A címkék neveként jelzik az X-nél elérhető adatok címkézését.
Rendezett határozza meg, hogy a szinteket adott sorrendben kell-e rendezni.
1. példa
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike"))
y
Kimenet:
2. példa
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Kimenet:
A 2. példában láthatjuk, hogy a „szinteket” is meghatározhatjuk.
Most nézzük meg többet a tényezőkről az Str (y) használatával.
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Kimenet:
str(y)
Kimenet:
Világosan látszik, hogy a tényezőket egész vektorokként tárolják, a szinteket pedig karaktervektorként tárolják, az egyes elemeket pedig ténylegesen indexekként tárolják.
- Most meglátjuk, hogyan lehet elérni egy tényező összetevőit
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Kimenet:
y(2) # helps to access 2nd element
Kimenet:
x(c(3, 4)) # helps to access 3rd and 4th element
Kimenet
x(-1) # access all except 1st element
Kimenet:
- Most meglátjuk, hogyan lehet egy tényezőt módosítani.
y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y
Kimenet:
y(3) = "Truck" #modifty third element
y
Kimenet
Tényező hozzáadása:
y(10) = "Car"
y
Kimenet:
Felhívjuk figyelmét, hogy nem adhatunk hozzá olyan tényezőt, amely nem tartozik a szintekhez.
y(4) = "Plane"Warning message:In `(<-.factor`(`*tmp*`, 4, value = "Plane") : invalid factor level, NA generated
Kimenet:
Ebben a példában láthatjuk, hogy a „Sík” nem része a szintünknek, ezért kapott egy figyelmeztető üzenetet, amely szerint a „Sík” érvénytelen tényező szint.
Konvertálja az adatokat tényezővé
Az adatok nagyszámban állnak rendelkezésre, és nehéz minden alkalommal egy teljes szót írni a kódban, ezért ehhez először konvertáljuk az adatokat tényezővé, majd konvertáljuk a tényezőt karakterré vagy számgá, kényelmünk szerint.
Most dolgozzunk néhány valódi adaton. Ahol 50 megfigyelés van, és a jelentkezők megadják munkájuk irányát. Például John utazik észak felé munkaköri feladataiért, vagy Sam utazik dél felé irányítva munkaköri feladataiért.
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
Kimenet:
Szintek: kelet észak délnyugat
Most, ha átalakítani akarjuk a tényezőt karaktervektormá:
Az as.character () kódot fogjuk használni.
as.character(direction.factor)
Kimenet:
Vagy át akarjuk alakítani a tényezőt numerikus vektormá:
Az as.numeric () kódot fogjuk használni.
as.numeric(direction.factor)
Kimenet:
Ajánlott cikkek
Ez egy útmutató az R. tényezőihez. Itt tárgyaljuk a tényező bevezetését, előnyeit, hogyan lehet egy tényezőt létrehozni az R-ben a kimenetekkel együtt. A további javasolt cikkeken keresztül további információkat is megtudhat -
- Spark SQL Dataframe
- R adattípusok
- Többdimenziós adatbázis
- AWS Data Pipeline