Inleiding tot factoren in R

In R kunnen we verschillende soorten variabelen verwerken. We kunnen ook een factor aannemen als een type variabele waarvoor slechts een beperkt aantal toegewezen waarden nodig is; een dergelijke variabele ook een categorische variabele genoemd.

Voordelen van een factor

  • Het kan zowel gehele getallen als tekenreeksen opslaan

1. In het geval van gehele getallen

data = c(5, 6, 6, 6, 7, 5, 7, 6, 7, 5, 6, 7)
factor_data = factor(data)
factor_data

uitgang

2. In het geval van tekenreeksen

y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"))
y

uitgang

y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y

uitgang

  • Zeer handig wanneer de kolommen een beperkt aantal unieke waarden hebben
NaamManier van reizen
JohnVrachtauto
ShawAuto
luwteFiets
MusanFiets
lozyVrachtauto
RiyaAuto
mijFiets

Hier hebben we een beperkt aantal unieke waarden in kolom 2.

  • Het helpt de tekenreeksen te corrigeren met typefouten (typefouten).

Hoe maak je een factor in R?

We kunnen factoren creëren met behulp van codefactoren ().

Ontdek meer over factor ().

factor(x = character(), levels, labels = levels, ordered = is.ordered(x))

Waar,

X is een verzameling categorische gegevens. Zoals we al hebben besproken, moet dit een string of gehele getallen zijn.

Niveaus zijn waarden die kunnen worden gebruikt door X. Niveaus bevatten alle unieke waarden die beschikbaar zijn in de kolom (x).

Etiketten zoals de naam suggereren etikettering van de gegevens beschikbaar bij X.

Besteld bepaalt of de niveaus in een bepaalde volgorde moeten worden besteld.

Voorbeeld 1

y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike"))
y

Output:

Voorbeeld 2

y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y

Output:

In voorbeeld 2 kunnen we zien dat we ook "Niveaus" kunnen definiëren.

Laten we nu meer over factoren zien door Str (y) te gebruiken.

y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y

Output:

str(y)

Output:

Het is duidelijk te zien dat factoren worden opgeslagen als gehele vectoren en niveaus worden opgeslagen als een karaktervector, en de individuele elementen worden feitelijk opgeslagen als indices.

  • Nu zullen we zien hoe we toegang krijgen tot componenten van een factor

y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y

Output:

y(2) # helps to access 2nd element

Output:

x(c(3, 4)) # helps to access 3rd and 4th element

uitgang

x(-1) # access all except 1st element

Output:

  • Nu zullen we zien hoe een factor te wijzigen.

y = factor(c("Bike", "Car", "Cycle", "Truck", "Car", "Bike", "Cycle", "Truck", "Car", "Bike"), levels = c("Car", "Bike", "Cycle", "Truck", "Train"))
y

Output:

y(3) = "Truck" #modifty third element
y

uitgang

Toevoegen aan een factor:

y(10) = "Car"
y

Output:

Houd er rekening mee dat we niets kunnen toewijzen in een factor die geen deel uitmaakt van de niveaus.

y(4) = "Plane"Warning message:In `(<-.factor`(`*tmp*`, 4, value = "Plane") : invalid factor level, NA generated

Output:

In dit voorbeeld kunnen we zien dat "Vliegtuig" geen deel uitmaakt van ons niveau. Daarom hebben we een waarschuwingsbericht ontvangen waarin staat dat "Vliegtuig" een ongeldig factorniveau is.

Gegevens converteren naar een factor

Gegevens zijn beschikbaar in overvloed, en het is elke keer moeilijk om een ​​volledig woord in de code op te schrijven, dus hiervoor zullen we de gegevens eerst in een factor omzetten en vervolgens de factor omzetten in een karakter of getal zoals het ons uitkomt.

Laten we nu aan enkele echte gegevens werken. Waar we 50 observaties hebben en sollicitanten hun werkrichting geven. Zoals John naar het noorden reist voor zijn taken, of Sam naar het zuiden reist voor zijn taken.

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

Output:

Niveaus: oost noord zuid west

Als we de factor nu in een tekenvector willen omzetten:

We gebruiken de code as.character ().

as.character(direction.factor)

Output:

Of we willen de factor omzetten in een numerieke vector:

We gebruiken as.numeric () code.

as.numeric(direction.factor)

Output:

Aanbevolen artikelen

Dit is een gids voor factoren in R. Hier bespreken we de introductie, Voordelen van een factor, Hoe een factor in R samen met de uitgangen te creëren. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie–

  1. Spark SQL Dataframe
  2. R Gegevenstypen
  3. Multidimensionale database
  4. AWS-gegevenspijplijn

Categorie: