Jefftopia Jefftopia - 4 years ago 401
R Question

R: non-numeric argument to binary operator?

I'm attempting to create my first function in R. The function should take in a data frame, x-series from data frame, y-series from data frame, and plot a scatter plot. Seems simple enough, but I run into trouble when I attempt to check for an optional boolean argument.

R Script



plotScatterChart <- function(data,x,y,scale=y,line=FALSE) {

require(ggplot2)
data$x <- as.numeric(x)
data$y <- as.numeric(y)

plot <- ggplot(data, aes(x, y)) +
geom_point() + # aes(alpha=0.3,color=scale)
#scale_color_gradient(high="red")

if(line) {
plot <- plot + geom_smooth(method="lm")
}

ggsave(file="plot.svg", plot=plot, height=10, width=10)

return(plot)
}

plotScatterChart(data=iris,x=iris$Petal.Length,y=iris$Petal.Width,line=TRUE)


Error



non-numeric argument to binary operator


Extra



Other suggestions for improving this function are welcome.

Answer Source

The error is because of the trailing + after geom_point(). Remove that and it should work.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download