Los factores en el lenguaje de programación R son estructuras de datos que se implementan para categorizar los datos o representar datos categóricos y almacenarlos en múltiples niveles.
Se pueden almacenar como enteros con una etiqueta correspondiente a cada entero único. Aunque los factores pueden parecer similares a los vectores de caracteres, son números enteros y se debe tener cuidado al usarlos como strings. El factor acepta solo un número restringido de valores distintos. Por ejemplo, un campo de datos como el género puede contener valores solo de mujer, hombre o transgénero.
En el ejemplo anterior, todos los casos posibles se conocen de antemano y están predefinidos. Estos valores distintos se conocen como niveles. Una vez que se crea un factor, solo consta de niveles que se ordenan alfabéticamente de manera predeterminada.
Atributos de los factores en lenguaje R
- x: Es el vector que necesita convertirse en un factor.
- Niveles: Es un conjunto de valores distintos que se le dan al vector de entrada x.
- Etiquetas: Es un vector de caracteres correspondiente al número de etiquetas.
- Excluir: Esto mencionará todos los valores que desea excluir.
- Ordenado: este atributo lógico decide si los niveles están ordenados.
- nmax: Decidirá el límite superior para el número máximo de niveles.
Creación de un factor en el lenguaje de programación R
El comando utilizado para crear o modificar un factor en lenguaje R es – factor() con un vector como entrada.
Los dos pasos para crear un factor son:
- Creando un vector
- Convertir el vector creado en un factor usando la función factor()
Ejemplos: Vamos a crear un factor género con niveles femenino, masculino y transgénero.
R
# Creating a vector x < -c("female", "male", "male", "female") print(x) # Converting the vector x into a factor # named gender gender < -factor(x) print(gender)
Producción:
[1] "female" "male" "male" "female" [1] female male male female Levels: female male
Los niveles también pueden ser predefinidos por el programador.
R
# Creating a factor with levels defined by programmer gender <- factor(c("female", "male", "male", "female"), levels = c("female", "transgender", "male")); gender
Producción:
[1] female male male female Levels: female transgender male
Además, se pueden verificar los niveles de un factor usando la funciónlevels() .
Comprobación de un factor en R
La función is.factor() se usa para verificar si la variable es un factor y devuelve «VERDADERO» si es un factor.
R
gender <- factor(c("female", "male", "male", "female")); print(is.factor(gender))
Producción:
[1] TRUE
La función class() también se usa para verificar si la variable es un factor y si es verdadero devuelve «factor».
R
gender <- factor(c("female", "male", "male", "female")); class(gender)
Producción:
[1] "factor"
Accediendo a elementos de un Factor en R
Al igual que accedemos a los elementos de un vector, de la misma manera accedemos a los elementos de un factor. Si el género es un factor, entonces el género[i] significaría acceder al i -ésimo elemento del factor.
Ejemplo:
R
gender <- factor(c("female", "male", "male", "female")); gender[3]
Producción:
[1] male Levels: female male
Se puede acceder a más de un elemento a la vez.
Ejemplo:
R
gender <- factor(c("female", "male", "male", "female")); gender[c(2, 4)]
Producción:
[1] male female Levels: female male
Ejemplo:
R
gender <- factor(c("female", "male", "male", "female" )); gender[-3]
Producción:
[1] female male female Levels: female male
Modificación de un Factor en R
Después de que se forma un factor, sus componentes se pueden modificar, pero los nuevos valores que deben asignarse deben estar en el nivel predefinido.
Ejemplo:
R
gender <- factor(c("female", "male", "male", "female" )); gender[2]<-"female" gender
Producción:
[1] female female male female Levels: female male
Para seleccionar todos los elementos del factor género excepto el elemento i-ésimo, se debe usar género[-i]. Entonces, si desea modificar un factor y agregar valor a partir de niveles predefinidos, primero modifique los niveles.
Ejemplo:
R
gender <- factor(c("female", "male", "male", "female" )); # add new level levels(gender) <- c(levels(gender), "other") gender[3] <- "other" gender
Producción:
[1] female male other female Levels: female male other
Factores en el marco de datos
El marco de datos es similar a una array 2D con las columnas que contienen todos los valores de una variable y las filas que tienen un conjunto de valores de cada columna. Hay cuatro cosas para recordar acerca de los marcos de datos:
- los nombres de las columnas son obligatorios y no pueden estar vacíos.
- Se deben asignar nombres únicos a cada fila.
- Los datos del marco de datos solo pueden ser de tres tipos: factor, numérico y tipo de carácter.
- El mismo número de elementos de datos debe estar presente en cada columna.
En el lenguaje R, cuando creamos un marco de datos, su columna son datos categóricos y, por lo tanto, se crea automáticamente un factor en él.
Podemos crear un marco de datos y verificar si su columna es un factor.
Ejemplo:
R
age <- c(40, 49, 48, 40, 67, 52, 53) salary <- c(103200, 106200, 150200, 10606, 10390, 14070, 10220) gender <- c("male", "male", "transgender", "female", "male", "female", "transgender") employee<- data.frame(age, salary, gender) print(employee) print(is.factor(employee$gender))
Producción:
age salary gender 1 40 103200 male 2 49 106200 male 3 48 150200 transgender 4 40 10606 female 5 67 10390 male 6 52 14070 female 7 53 10220 transgender [1] TRUE