Hello all,

I provide a function for my students to do two curve fits with a single set of 
data:

# Performs two curve fits, quadratic and n lg n, with a plot of the data and 
the two curves
# First parameter: A data frame
# Second parameter: Name of the independent (x) variable
# Third parameter: Name of the dependent (y) variable
# Fourth parameter: The label for the x-axis
# Fifth parameter: The label for the y-axis
dp4dsFit <- function(dataFrame, indepVarName, depVarName, xLabel, yLabel) {
  library(ggplot2)
  library(labeling)
  dp4dsQuadraticFit <- lm(dataFrame[,depVarName] ~ 
poly(dataFrame[,indepVarName],2))
  write("=============\r",file="")
  write("Quadratic fit\r",file="")
  write("=============\r",file="")
  print(summary(dp4dsQuadraticFit))
  dp4dsNlogNFit <- lm(dataFrame[,depVarName] ~ 
dataFrame[,indepVarName]:log(dataFrame[,indepVarName]) + 
dataFrame[,indepVarName])
  write("==========\r",file="")
  write("n lg n fit\r",file="")
  write("==========\r",file="")
  print(summary(dp4dsNlogNFit))
  ggplot() +
    geom_point(data = dataFrame, aes_string(x = indepVarName, y = depVarName), 
size = 3) +
    geom_smooth(data = dataFrame, aes_string(x = indepVarName, y = depVarName),
                method = "lm", se = FALSE, colour = "RED", formula = y ~ 
poly(x,2)) +
    geom_smooth(data = dataFrame, aes_string(x = indepVarName, y = depVarName),
                method = "lm", se = FALSE, colour = "BLUE", formula = y ~ 
x:log(x) + x) +
    xlab(label = xLabel) +
    ylab(label = yLabel)
}


I use ggplot to produce the plot, but I cannot figure out how to produce the 
legend. Every example I have seen assumes a separate entry in the legend for 
each set of data. The problem is I have a single set of data with two different 
curve fits. How do I make a legend with red for the quadratic curve fit and 
blue for the n lg n curve fit?

Another minor question. Are the above write statements the best way to echo a 
message to the console?

Thanks,
Stan

J. Stanley Warford
Professor of Computer Science
Pepperdine University
Malibu, CA 90263
[email protected]<mailto:[email protected]>
310-506-4332


        [[alternative HTML version deleted]]

_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-teaching

Reply via email to