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.

Reply via email to