R 将可变列索引传递给 ggplot2

我试图将列索引传递给 ggplot,作为我将重复使用的函数的一部分。 例如:

myplot <- function(df){
ggplot(df, aes(df[, 1], df[, 2])) + geom_point()
}

I'll always be using the first column as my x variable and the second column as my y-variable, but the column names change between data sets. I've searched all over.. Any ideas?

编辑:

这是我的回答:

require(ggplot2)


myplot <- function(df){
ggplot(df, aes_string(colnames(df)[1], colnames(df)[2])) + geom_point()
}
42762 次浏览

您可以使用 aes_string而不是 aes来传递字符串而不是使用对象,例如:

myplot = function(df, x_string, y_string) {
ggplot(df, aes_string(x = x_string, y = y_string)) + geom_point()
}
myplot(df, "A", "B")
myplot(df, "B", "A")