Factores R


factores

Los factores se utilizan para clasificar los datos. Ejemplos de factores son:

  • Demografía: Hombre/Mujer
  • Música: Rock, Pop, Clásica, Jazz
  • Entrenamiento: Fuerza, Resistencia

Para crear un factor, use la factor()función y agregue un vector como argumento:

Ejemplo

# Create a factor
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

# Print the factor
music_genre

Resultado:

[1] Jazz    Rock    Classic Classic Pop     Jazz    Rock    Jazz
Levels: Classic Jazz Pop Rock

Puede ver en el ejemplo anterior que el factor tiene cuatro niveles (categorías): Clásico, Jazz, Pop y Rock.

Para imprimir solo los niveles, utilice la levels()función:

Ejemplo

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

levels(music_genre)

Resultado:

[1] "Classic" "Jazz"    "Pop"     "Rock"   

También puede establecer los niveles, agregando el levelsargumento dentro de la factor()función:

Ejemplo

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock", "Other"))

levels(music_genre)

Resultado:

[1] "Classic" "Jazz"    "Pop"     "Rock"    "Other"

Longitud de factores

Usa la length()función para averiguar cuántos elementos hay en el factor:

Ejemplo

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

length(music_genre)

Resultado:

[1] 8

Factores de acceso

Para acceder a los elementos de un factor, consulte el número de índice, utilizando []paréntesis:

Ejemplo

Accede al tercer elemento:

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

music_genre[3]

Resultado:

[1] Classic
Levels: Classic Jazz Pop Rock

Cambiar el valor del artículo

Para cambiar el valor de un elemento específico, consulte el número de índice:

Ejemplo

Cambia el valor del tercer elemento:

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

music_genre[3] <- "Pop"

music_genre[3]

Resultado:

[1] Pop
Levels: Classic Jazz Pop Rock

Tenga en cuenta que no puede cambiar el valor de un artículo específico si no está ya especificado en el factor. El siguiente ejemplo producirá un error:

Ejemplo

Intentando cambiar el valor del tercer elemento ("Clásico") a un elemento que no existe/no está predefinido ("Opera"):

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))

music_genre[3] <- "Opera"

music_genre[3]

Resultado:

Warning message:
In `[<-.factor`(`*tmp*`, 3, value = "Opera") :
  invalid factor level, NA generated

Sin embargo, si ya lo ha especificado dentro del levelsargumento, funcionará:

Ejemplo

Cambia el valor del tercer elemento:

music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock", "Opera"))

music_genre[3] <- "Opera"

music_genre[3]

Resultado:

[1] Opera
Levels: Classic Jazz Pop Rock Opera