Okay here’s a pretty short code to reproduce it:

data <- 
read.table("http://users.jyu.fi/~slahola/files/glm1_datoja/yoruotsi.txt";, 
header=TRUE)
attach(data)

fit2 <- lm(ruotsi.pist ~ mies + koulu + lka + koulu*clka)

bs <- coef(fit2)

varitB <- c(data[koulu == 'B',]$mies)
varitB[varitB == 0] = 2
plot(data[data$koulu == 'B',]$lka, data[koulu == 'B',]$ruotsi.pist, col=varitB, 
pch=16, xlab='', ylab='', main='Lukio B’)

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')


> On 25 Sep 2016, at 19:24, Jeff Newmiller <jdnew...@dcn.davis.ca.us> wrote:
> 
> Go directly to C. Do not pass go, do not collect $200.
> 
> You think curve does something, but you are missing what it actually does. 
> Since you don't seem to be learning from reading ?curve or from our 
> responses, you need to give us an example you can learn from. 
> -- 
> Sent from my phone. Please excuse my brevity.
> 
> On September 25, 2016 9:04:09 AM PDT, mviljamaa <mvilja...@kapsi.fi> wrote:
>> On 2016-09-25 18:52, Jeff Newmiller wrote:
>>> You seem to be confused about what curve is doing vs. what you are 
>>> doing.
>> 
>> But my x-range in curve()'s parameters from and to should be the entire
>> 
>> lka vector, since they are from=min(lka) and to=max(lka). Then why does
>> 
>> this not span the entire of lka? Because of duplicate entries or what?
>> 
>> It seems like I cannot use curve(), since my x-axis must be exactly lka
>> 
>> for the function to plot the y value for every lka value.
>> 
>>> A) Compute the points you want to plot and put them into 2 vectors.
>>> Then figure out how to plot those vectors. Then (perhaps) consider
>>> putting that all into one line of code again.
>>> 
>>> B) The predict function is the preferred way to compute points. It
>> may
>>> be educational for you to do the computations by hand at first, but
>> in
>>> the long run using predict will help you avoid problems getting the
>>> equations right in multiple places in your script.
>>> 
>>> C) Learn what makes an example reproducible (e.g. [1] or [2]), and
>> ask
>>> your questions with reproducible code and data so we can give you
>>> concrete responses.
>>> 
>>> [1] http://adv-r.had.co.nz/Reproducibility.html
>>> [2]
>>> 
>> http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example
>>> --
>>> Sent from my phone. Please excuse my brevity.
>>> 
>>> On September 25, 2016 8:36:49 AM PDT, mviljamaa <mvilja...@kapsi.fi> 
>>> wrote:
>>>> On 2016-09-25 18:30, Duncan Murdoch wrote:
>>>>> On 25/09/2016 9:10 AM, Matti Viljamaa wrote:
>>>>>> 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.
>>>>> 
>>>>> How could curve() know what the length of lka is?  You're telling
>> it
>>>>> to set x to a sequence of values of length 101 (the default) from
>>>>> min(lka) to max(lka).  You never tell it to set x to lka.
>>>>> 
>>>>> curve() is designed to plot expressions or functions, not vectors.
>>>> If
>>>>> you actually want to plot line segments using your original data,
>> use
>>>>> lines().  (You'll likely need to sort your x values into increasing
>>>>> order if you do that, or you'll get a pretty ugly plot.)
>>>>> 
>>>>> Duncan Murdoch
>>>> 
>>>> I know that about curve(), but since this function uses lka as a
>>>> parameter, then how should I formulate it for curve so that I don't 
>>>> get
>>>> 
>>>> the error about wrong lengths?
>>>> 
>>>>>> 
>>>>>>> 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.
>>>>>> 
>>>> 
>>>> ______________________________________________
>>>> 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.
> 

______________________________________________
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