tutorial studio remove ggplot español descargar r ggplot2

studio - ggplot2 tutorial español



Eliminando las NA de un ggplot (6)

Además, agregar na.rm = TRUE a tu geom_bar () funcionará.

ggplot(data = MyData,aes(x= the_variable, fill=the_variable, na.rm = TRUE)) + geom_bar(stat="bin", na.rm = TRUE)

Me encontré con este problema con un bucle en una serie de tiempo y esto lo solucionó. Los datos faltantes se eliminan y los resultados no se verán afectados.

Esta es una pregunta muy básica ya que estoy empezando a usar R, pero estoy tratando de crear una gráfica de barras de conteos de factores en ggplot2 y, al hacer la gráfica, obtengo 14 pequeños blips de colores que representan mis niveles reales y luego una barra gris masiva en el el final representa los 5000-ish NA en la muestra (son datos de encuestas de una pregunta que solo se aplican a aproximadamente el 5% de la muestra). He intentado el siguiente código en vano:

ggplot(data = MyData,aes(x= the_variable, fill=the_variable, na.rm = TRUE)) + geom_bar(stat="bin")

La adición del argumento na.rm aquí no tiene ningún efecto aparente.

mientras tanto

ggplot(data = na.omit(MyData),aes(x= the_variable, fill=the_variable, na.rm = TRUE)) + geom_bar(stat="bin")

me da

"Error: la estética debe tener la longitud uno o la misma longitud que los datos"

al igual que la colocación de na.omit() en the_variable, o tanto MyData como the_variable.

Todo lo que quiero hacer es eliminar la barra de NA gigante de mi gráfico, ¿puede alguien ayudarme a hacer esto?


Desde mi punto de vista, este error "Error: la estética debe ser la longitud uno, o la misma longitud que los datos" se refiere al argumento aes (x, y) Probé el na.omit () y funcioné bien para mí.


Intente remove_missing en remove_missing lugar con vars = the_variable . Es muy importante que establezca el argumento vars , de lo contrario, remove_missing eliminará todas las filas que contengan un NA en cualquier columna. La configuración de na.rm = TRUE suprimirá el mensaje de advertencia.

ggplot(data = remove_missing(MyData, na.rm = TRUE, vars = the_variable),aes(x= the_variable, fill=the_variable, na.rm = TRUE)) + geom_bar(stat="bin")


No estoy seguro si has resuelto el problema. Para este problema, puede utilizar la función "filtro" en el paquete dplyr. La idea es filtrar las observaciones / filas cuyos valores de la variable de su interés no sea NA. A continuación, realice la gráfica con estas observaciones filtradas. Puede encontrar mis códigos a continuación y tenga en cuenta que todo el nombre del marco de datos y la variable se copian del mensaje de su pregunta. Además, supongo que conoces a los operadores de tuberías.

library(tidyverse) MyDate %>% filter(!is.na(the_variable)) %>% ggplot(aes(x= the_variable, fill=the_variable)) + geom_bar(stat="bin")

Debería poder eliminar las NA molestas en su parcela. Espero que esto funcione :)


Puede utilizar el subset funciones dentro de ggplot2 . Prueba esto

library(ggplot2) data("iris") iris$Sepal.Length[5:10] <- NA # create some NAs for this example ggplot(data=subset(iris, !is.na(Sepal.Length)), aes(x=Sepal.Length)) + geom_bar(stat="bin")


Solo una actualización a la respuesta de @ rafa.pereira. Dado que ggplot2 es parte de tidyverse , tiene sentido usar las funciones de tidyverse convenientes para deshacerse de los NA.

library(tidyverse) airquality %>% drop_na(Ozone) %>% ggplot(aes(x = Ozone))+ geom_bar(stat="bin")

Tenga en cuenta que también puede usar drop_na() sin especificación de columnas; entonces se eliminarán todas las filas con NA en cualquier columna.