Problema al pasar variable con notación de signo de dólar ($) a aes () en combinación con facet_grid () o facet_wrap ()
Estoy haciendo un análisis en ggplot2 en este momento para un proyecto y por casualidad me topé con un comportamiento extraño (para mí) que no puedo explicar. Cuando yo escriboaes(x = cyl, ...)
la trama se ve diferente a lo que hace si paso la misma variable usandoaes(x = mtcars$cyl, ...)
. Cuando quitofacet_grid(am ~ .)
ambas gráficas son iguales nuevamente. El código siguiente se basa en el código de mi proyecto que genera el mismo comportamiento:
library(dplyr)
library(ggplot2)
data = mtcars
test.data = data %>%
select(-hp)
ggplot(test.data, aes(x = test.data$cyl, y = mpg)) +
geom_point() +
facet_grid(am ~ .) +
labs(title="graph 1 - dollar sign notation")
ggplot(test.data, aes(x = cyl, y = mpg)) +
geom_point()+
facet_grid(am ~ .) +
labs(title="graph 2 - no dollar sign notation")
Aquí está la imagen del gráfico 1:
Aquí está la imagen del gráfico 2:
Descubrí que puedo solucionar este problema usandoaes_string
en lugar deaes
y pasando los nombres de las variables como cadenas, pero me gustaría entender por qué ggplot se comporta de esa manera. El problema también ocurre en intentos similares confacet_wrap
.
Muchas gracias por cualquier ayuda de antemano! Me siento muy incómodo si no lo entiendo correctamente ...