R将变量列索引传递给ggplot2

我试图将列索引传递给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()

}


慕斯王
浏览 676回答 3
3回答

慕慕森

aes_string(colnames(df)[1], colnames(df)[2])

白衣染霜花

我已经链接了一种方法(根本不用列名)。如果您坚持使用列名,请尝试以下操作:set.seed(45); df <- data.frame(x=gl(5,5), y=runif(25)); myplot2 = function(df, col1, col2) { ggplot(df, aes(x = get(names(df)[col1]), y = get(names(df)[col2])), environment = environment()) + geom_point() }。由此可以很容易地更改此函数以将列名作为参数。
打开App,查看更多内容
随时随地看视频慕课网APP