R ggplot2中的列引用

R ggplot2中的列引用,r,reference,ggplot2,character,R,Reference,Ggplot2,Character,我有这个功能: plotS<-function(data){ library(ggplot2) p<-ggplot(data,aes(x=date,y=y))+geom_line(aes(y=data[,2],color=colnames(data)[2])) p<-p+geom_line(aes(y=data[,3],color=colnames(data)[3])) return(p) }

我有这个功能:

plotS<-function(data){
        library(ggplot2)
        p<-ggplot(data,aes(x=date,y=y))+geom_line(aes(y=data[,2],color=colnames(data)[2]))
        p<-p+geom_line(aes(y=data[,3],color=colnames(data)[3]))

        return(p)    
    }
当我运行函数时,它总是返回:

Error in data[, 2] : object of type 'closure' is not subsettable
我认为这是因为在ggplot2中,美学只能将列名作为参数。但问题是,输入数据集在第2列和第3列中的名称总是不同。
有什么简单的解决方案吗?

有很多问题:1数据是内置R函数的名称,2使用[inside of aes不推荐,3 color=有些东西应该在aes内部,有些东西需要成为数据中的列名,4从函数内部调用ggplot可能会遇到范围问题。请看一看,谢谢。我更正了问题1和3。问题是ColName是股票价格,我想将其保留在l中egend,但对于每个输入数据集,它是不同的。我想不出更通用的引用平均值。要在循环或函数中动态定义数据列,您可能需要使用aes_字符串。
Error in data[, 2] : object of type 'closure' is not subsettable