Writing: bs["(Intercept)"]+bs["mies"]*0+bs["kouluB"]+bs["lka"]*lka+bs["kouluB:clka"]*clka
i.e. without that being inside curve produces a vector of length 375. So now it seems that curve() is really skipping some lka-/x-values. > On 25 Sep 2016, at 16:01, Matti Viljamaa <mvilja...@kapsi.fi> wrote: > > I’m trying to plot regression lines using curve() > > The way I do it is: > > bs <- coef(fit2) > > and then for example: > > curve(bs["(Intercept)"]+bs["mies"]*0+bs["kouluB"]+bs["lka"]*x+bs["kouluB:clka"]*clka, > from=min(lka), to=max(lka), add=TRUE, col='red') > > This above code runs into error: > > Error in curve(bs["(Intercept)"] + bs["mies"] * 0 + bs["kouluB"] + bs["lka"] > * : > 'expr' did not evaluate to an object of length 'n' > In addition: Warning message: > In bs["(Intercept)"] + bs["mies"] * 0 + bs["kouluB"] + bs["lka"] * : > longer object length is not a multiple of shorter object length > > Which I’ve investigated might be related to the lengths of the different > objects being multiplied or summed. > Taking length(g$x) or length(g$y) of > > g <- curve(bs["(Intercept)"]+bs["mies"]*0+bs["kouluB"]+bs["lka"]*x, > from=min(lka), to=max(lka), add=TRUE, col='red') > > returns 101. > > However length(lka) is 375. But perhaps these being different is not the > problem? > > I however do see that the whole range of lka is not plotted, for some reason. > So how can I be sure > that it passes through all x-values in lka? And i.e. that the lengths of > objects inside curve() are correct? > > What can I do? ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.