Alternatively, one can convert dat to a data frame first (?lm states that data is "an optional data frame containing the variables in the model."):
dat<-matrix(c(0,0,10,20),2,byrow=T) dat <- as.data.frame(dat) lm1<-lm(V2~V1, dat) predict(lm1, data.frame(V1=seq(0,10,1))) 1 2 3 4 5 6 7 8 9 10 11 0 2 4 6 8 10 12 14 16 18 20 Cheers ......... Peter Alspach >>> Gabor Grothendieck <[EMAIL PROTECTED]> 01/06/05 09:00:15 >>> On 5/31/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Excuse the simple question... > I'm not sure what I'm doing wrong with predict, but let me use this example: > Suppose I do: > dat<-matrix(c(0,0,10,20),2,byrow=T) > lm1<-lm(dat[,2]~dat[,1]) > > Suppose I want to generate the linearly-interpolated y-values between the > point (0,0) and (0,20) at every unit interval. > I thought I just do: > predict(lm1, data.frame(seq(0,10,1))) to get 0,2,4,6...,18,20, but instead > I just get: > 1 2 > 0 20 > I think the names are confusing it. Try: x <- dat[,1]; y <- dat[,2] lm1 <- lm(y ~ x) predict(lm1, data.frame(x = 1:10)) ______________________________________________ [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 ______________________________________________________ The contents of this e-mail are privileged and/or confidenti...{{dropped}} ______________________________________________ [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
