73

我正在尝试将列索引作为我将重复使用的函数的一部分传递给 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()
}
4

1 回答 1

109

您可以使用aes_stringin 而不是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")
于 2013-03-17T07:40:32.213 回答