[R] Interpolate x from y

David Winsemius dwinsemius at comcast.net
Thu Mar 26 01:49:15 CET 2009


On Mar 25, 2009, at 2:22 PM, David Winsemius wrote:

>
> On Mar 25, 2009, at 8:37 AM, Greg wrote:
>
>> Forgive me for not being more clear.
>>
>>> Would you expect that one y
>>> value returns more than one x? I don't
>>
>> No, I don't either.  I want to know the value of that x, however.   
>> For
>> example:
>>
>> x <- c(2.743, 3.019, 3.329, 3.583, 4.017)
>> y <- c(0.000, 0.025, 0.025, 0.158, 1.000)
>>
>> I would like to know the value of x when y is 0.1 and 0.9. If I try  
>> to
>> "trick" approx() to give the answer I'm looking for by switching x  
>> & y
>> (e.g., approx(y, x)) the (perfectly reasonable) warning, "In  
>> approx(y,
>> x, c(0.1, 0.9)) : collapsing to unique 'x' values" is thrown.
>
> ?lm
> ?predict
>
> >
>       1        2        3        4        5
> 3.104855 3.129001 3.129001 3.257457 4.070686

I realized in looking at this again that specific predictions were  
requested and these would come from:
predict(lm(x ~ y), newdata = list(y = c(0.1, 0.9) )  )
        1        2
3.201438 3.974103

Note,  of course, that the regression of x on y will not be the  
precise inverse of the regression of y on x.

>>
>> I'm simply wondering if it's possible to interpolate to an x-axis--
>> similar to approx()'s behaviour to interpolate to a y-axis, but in
>> reverse.
>

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list