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

Reply via email to