所以我的代码大部分都是好的,最后这个部分出现了问题:
sqlPlot <- sqlPlot + facet_wrap(~variable)
这种情况正在发生,因为我所通过的变量是一个字符串,并且与我的代码的facet_wrap()段不兼容。
我的问题是,如何更改语法以使其有效?我已经尝试过研究如何解决这个问题,但由于我对R很新,我不完全确定如何提出这个问题。任何和所有帮助将不胜感激。
library(sqldf) library(dplyr) library(ggplot2) library(lubridate)sqldfGraphFn <- function(variable) { colNames <- paste("select ", get(variable), ", FYFQ, Date, sum(Revenue), sum(Quantity),", "sum(Revenue*Discount)/sum(Revenue)", sep="") from <- " from cleanData" groupBy <- paste(" group by ", get(variable), ", FYFQ, Date", sep="") sqlEverything <- paste(colNames, from, groupBy, sep="") sqlTest <- sqldf(sqlEverything)
colnames(sqlTest)[which(colnames(sqlTest)=="sum(Revenue*Discount)/sum(Revenue)")] <- "wtCOGs" arguments <- as.list(match.call()) variable = eval(arguments$variable, sqlTest) sqlPlot <- ggplot(data=sqlTest, aes(x=weightedDiscount, y=SLC)) + geom_point() sqlPlot <- sqlPlot + scale_x_continuous(limits=c(-.05, .05), breaks=(-10:10)/200) + scale_y_continuous(limits=c(0, 1000000)) sqlPlot <- sqlPlot + facet_wrap(~variable) sqlPlot } sqldfGraphFn("CarType")
答案 0 :(得分:1)
您可以使用字符串创建公式对象,所以:
variable <- 'CarType'
myFormula <- as.formula(paste0('~', variable))
...
sqlPlot + facet_wrap(myFormula)