Я хотел бы иметь функцию, которую я мог бы применить к любому объекту, соответствующему критериям, и иметь приятный график рассеяния ggplot
с печатью линии регрессии.Передача строки в функцию ggplot
Однако я не могу обобщить то, что я могу сделать на REPL
с кодом.
так что я эту работу:
require(ggplot2)
require(xts)
set.seed(1)
dd = xts(cbind(rnorm(10), runif(10)), order.by = Sys.Date() + 1:10)
names(dd) <- c('d1', 'd2')
gp <- ggplot(data = dd,
aes(x = d1, y = d2)) +
geom_point(shape=1) +
geom_smooth(method = lm)
Но это не удается
PointReg <- function(Xts, a=1, b=2) {
stopifnot(is.xts(Xts),
ncol(Xts) >1)
tempData <- Xts[, c(a,b)]
gPlot <- ggplot(data = tempData,
aes(x = colnames(tempData)[1],
y = colnames(tempData)[2])) +
geom_point(shape=1) +
geom_smooth(method = lm)
gPlot
}
Что я делаю неправильно?