On Apr 6, 2010, at 10:42 AM, marta rufino wrote:
> Dear R-list members,
>
> I am calculating the linear extrapolation for a data set, using the
> function
> found in Hmisc.
>
> x=c(0.0265,-0.0003,0.0142,0.0263,0.0634,0.1145,0.2504)
> y=c(58,107,152,239,362,512,724)
> x1=0.0393216
> approxExtrap(x,y,x1, method="linear")
> approx(x,y,x1)
>
> #to see what is happening:
> plot(x, y, typ="o")
> abline(v=x1, col=8)
>
>
> Which gives x=0.03 and y=163, instead of the expectable which would
> be close
> to y=300.
> Any ideia why this is happening or how to sort this out?
Have you tried:
plot(x,y)
lines(x, approxfun(x,y)(x))
It would clue you in to the fact that your x argument was not ordered
and that the "next x" after 0.0263 is actually x[1] == 0.0265. Now
try:
> approxfun(x,y)(0.0263+seq(0,.04, by=0.001) )
[1] 239.00000 64.59079 72.82927 81.06775 89.30623 97.54472
105.78320 114.02168 122.26016
[10] 130.49864 138.73713 146.97561 155.21409 163.45257 171.69106
179.92954 188.16802 196.40650
[19] 204.64499 212.88347 221.12195 229.36043 237.59892 245.83740
254.07588 262.31436 270.55285
[28] 278.79133 287.02981 295.26829 303.50678 311.74526 319.98374
328.22222 336.46070 344.69919
[37] 352.93767 361.17615 364.64188 367.57730 370.51272
And I think it will be clearer what is happening.
In retrospect it would have been clearer to do this initially:
> plot(x,y)
> lines(seq(0.02, 0.2, by= 0.001), approxfun(x,y)(seq(0.02, 0.2, by=
0.001)) )
--
David.
>
> Thank you vey much in advance,
> Best wishes,
> Marta
>
> --
> LNEG_VS_Poli_CMYK_300dpi
>
> Laborat?rio Nacional de Energia e Geologia, I.P.
>
> Estrada da Portela, Zambujal - Alfragide
> Apartado 7586, 2720-866 Amadora
> www.lneg.pt
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.
David Winsemius, MD
West Hartford, CT