varias superponer studio que presentacion mapas lineas graficos graficas definicion data r levels

superponer - ¿Cómo puedo eliminar los niveles no utilizados de un marco de datos?



superponer graficas en r (3)

Agregando a la respuesta de Hong Ooi, este es un ejemplo que encontré de R-Bloggers.

# Create some fake data x <- as.factor(sample(head(colors()),100,replace=TRUE)) levels(x) x <- x[x!="aliceblue"] levels(x) # still the same levels table(x) # even though one level has 0 entries! The solution is simple: run factor() again: x <- factor(x) levels(x)

Dada la siguiente información falsa:

set.seed(123) x <- data.frame(let = sample(letters[1:5], 100, replace = T), num = sample(1:10, 100, replace = T)) y <- subset(x, let != ''a'')

Creando una tabla de y$let yields

a b c d e 0 20 21 22 18

Pero no quiero que se muestre más. Si trato de hacer esto:

levels(y$let) <- factor(y$let)

Enredezco las frecuencias, ya que ahora la table(y$let) me da

b d c e 0 20 21 40

Soy consciente de que podría hacer xtabs(~ y$let, drop.unused.levels = T) y solucionar el problema, pero no restablece los niveles variables en su núcleo (lo cual es importante para mí, ya que esto es un cambio temprano que estoy haciendo en el conjunto de datos que continuará a lo largo de todo el análisis). Además, xtabs es una clase diferente de la table , lo que me dará dolores de cabeza más adelante en el proyecto.

La pregunta es: ¿cómo puedo cambiar automáticamente los levels(y$let) para que no muestre los niveles que se eliminaron cuando creé el subconjunto? En este caso, ¿cómo puedo hacer que muestre [1] "b" "c" "d" "e" ?


Hay una función agregada recientemente en R para esto:

y <- droplevels(y)


Solo haz y$let <- factor(y$let) . El factor ejecución en una variable de factor existente restablecerá los niveles solo a aquellos que están presentes.