我正在尝试将列索引传递给ggplot作为我将重复使用的函数的一部分。 像:
myplot <- function(df){
ggplot(df, aes(df[, 1], df[, 2])) + geom_point()
}
我将始终使用第一列作为我的x变量而第二列作为我的y变量,但列名在数据集之间更改。我一直在搜索..有什么想法吗?
这是我使用的答案:
require(ggplot2)
myplot <- function(df){
ggplot(df, aes_string(colnames(df)[1], colnames(df)[2])) + geom_point()
}
答案 0 :(得分:100)
您可以使用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")