pasar cadenas de caracteres a ggplot2 dentro de una función

A menudo utilizo ggplot2 en mi trabajo y construyo funciones de envoltura para acelerar mi flujo de trabajo. El uso de los valores de evaluación no estándar (NSE) me obliga a utilizar los nombres de las variables reales en lugar de pasar las cadenas de caracteres. Así que copio y cambio el nombre de marcos de datos y nombres de variables para apaciguar ggplot2. Tiene que haber una mejor manera. ¿Cómo puedo hacer que ggplot2 acepte marcos de datos desconocidos y nombres de columnas a través de un contenedor de funciones sin replicar el dataframe y usar nombres generics de columnas?

Esto funciona:

 ggplot(mtcars, aes(x=mpg, y=hp)) + geom_point() 

Esto no lo hace:

 FUN <- function(dat, x, y) { ggplot(dat, aes(x = x, y = y)) + geom_point() } FUN(mtcars, "mpg", "hp") 

aes_string función aes_string , que realmente no veo dada prominencia, que hace exactamente esto:

 FUN < - function(dat, x, y) { ggplot(dat, aes_string(x = x, y = y)) + geom_point() } FUN(mtcars, "mpg", "hp")