How about something like this? my.func <- function(y, x1, x2, x3, x4 = NULL){ my.formula <- as.formula("y ~ x1 + x2 + x3 + x4") if(is.null(x4)) { my.formula <- as.formula("y ~ x1 + x2 + x3") } outlm <- lm(my.formula) meanvec<-c(mean(x1),mean(x2),mean(x3)) if(is.null(x4) == F) { meanvec<-c(mean(x1),mean(x2),mean(x3),mean(x4)) } mf <- data.frame(Impact = outlm$coef[-1], Performance = meanvec) plot((mf),xlab="Impact",ylab="Performance", type = "n") points(mf, pch=21, bg="grey", cex=4) text(x = mf$Impact, y = mf$Performance, labels = rownames(mf)) abline(h=mean(mf$Performance)) abline(v=mean(mf$Impact)) }
response <- 1:10 pred.1 <- rnorm(10) pred.2 <- runif(10) pred.3 <- pred.1 + runif(10) pred.4 <- runif(10) my.func(y = response, x1 = pred.1, x2 = pred.2, x3 = pred.3) my.func(y = response, x1 = pred.1, x2 = pred.2, x3 = pred.3, x4 = pred.4) You'd have to do some work to generalize it further. I don't have much experience writing functions with missing args and I expect this is a dumb way of doing it. HTH, Andy > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of Derek Margetts > Sent: Monday, November 08, 2004 11:39 AM > To: [EMAIL PROTECTED] > Subject: [R] plotting lm coeficients with their means > > > I am trying to write a function that will run a linear > model and plot the regression coeficients with their > corresponding means. I am having two problems. I can > get the plot with the function below, but I am having > trouble labeling the points. > > > function(y,x1,x2,x3,x4){ > outlm<-lm(y~x1+x2+x3+x4) > imp<-as.data.frame(outlm$coef[-1]) > meanvec<-c(mean(x1),mean(x2),mean(x3),mean(x4)) > out<-list(imp,meanvec) > mf<-as.data.frame(out) > plot((mf),xlab="Impact",ylab="performance") > abline(h=mean(meanvec)) > abline(v=mean(imp)) > } > > Problem #2: If I only input x1,x2,and x3 how do I get > the function to ingnore the 4th instead of giving me > the unused argument error? > > Thanks > Derek > > > > ______________________________________________ > [EMAIL PROTECTED] mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html