En el libro de Hadley Wickham ggplot2 en el capítulo 10.3, hace alusión a las funciones de trazado. Quiero hacer muchas parcelas similares que usen facetas, pero no puedo referirme a una columna. Si todas mis referencias están en estética, entonces puedo usar aes_string y todo funciona. Facet_wrap parece no tener un análogo.Haciendo funciones de trazado con ggplot y aes_string
library(ggplot2)
data(iris)
Esta es la trama que quiero funcionalizar.
pl.flower1 <- ggplot(data=iris,
aes_string(x='Sepal.Length', y='Sepal.Width', color='Petal.Length')) +
geom_point() +facet_wrap(~Species)
Esto funciona si no presento facetas.
flowerPlot <- function(dat, sl, sw, pl, sp){
ggplot(data=dat, aes_string(x=sl, y=sw, color=pl)) + geom_point()
}
pl.flower2 <- flowerPlot(iris, sl='Sepal.Length', sw='Sepal.Width', pl='Petal.Length')
¿Qué debería "sp" ser dos líneas a continuación? Una fórmula, una cadena? Tal vez todo el enfoque es incorrecto.
flowerPlotWrap <- function(dat, sl, sw, pl, sp){
ggplot(data=dat, aes_string(x=sl, y=sw, color=pl)) + geom_point() +facet_wrap(sp)
}
pl.flower3 <- flowerPlotWrap(iris, sl='Sepal.Length', sw='Sepal.Width', pl='Petal.Length', sp= ?????)
Además de una respuesta, me encantaría señalar cómo alguien aborda este problema.
En cuanto a cómo abordar la solución de esta pregunta, probablemente verifique primero [StackOverflow] (http://stackoverflow.com/questions/8043247/writing-r-functions-with-optional-arguments) primero. :) – joran
También se le preguntó aquí: http://stackoverflow.com/questions/11028353/passing-string-variable-facet-wrap-in-ggplot-using-r –