R-alpha: bug in approx
Andreas Weingessel
Andreas.Weingessel@ci.tuwien.ac.at
Fri, 25 Apr 1997 11:04:21 +0200
When the function approx is called with the argument rule=3D2, one gets
the error message
Error: NAs in foreign function call (arg 6)
Besides, the meaning of rule=3D1 or rule=3D2 is opposite to that describe=
d
in the help text and used in S-plus.
For example, in R:
R> approx(1:10,2:11,xout=3D5:15,rule=3D1)
$x
[1] 5 6 7 8 9 10 11 12 13 14 15
$y
[1] 6 7 8 9 10 11 11 11 11 11 11
R> approx(1:10,2:11,xout=3D5:15,rule=3D2)
Error: NAs in foreign function call (arg 6)
but in S-plus:
> approx(1:10,2:11,xout=3D5:15,rule=3D1)
$x:
[1] 5 6 7 8 9 10 11 12 13 14 15
$y:
[1] 6 7 8 9 10 11 NA NA NA NA NA
> approx(1:10,2:11,xout=3D5:15,rule=3D2)
$x:
[1] 5 6 7 8 9 10 11 12 13 14 15
$y:
[1] 6 7 8 9 10 11 11 11 11 11 11
The reason for this bug can be found in the last lines of the code of
approx:
if (rule =3D=3D 1) {
low <- y[1]
high <- y[length(x)]
}
else if (rule =3D=3D 2) {
low <- NA
high <- low
}
else stop("invalid extrapolation rule in approx")
y <- .C("approx", as.double(x), as.double(y), length(x),=20
xout =3D as.double(xout), length(xout), as.double(low),=20
as.double(high))$xout
return(list(x =3D xout, y =3D y))
If (rule =3D=3D 2) the values of low and high are set to NA. Immediately
afterwards, the foreign function "approx" is called with these values,
leading to the error
Error: NAs in foreign function call (arg 6)
To obtain the same behavior as in S-plus (and as in the help-text) the
commands for (rule =3D=3D 1) and (rule =3D=3D 2) have to be exchanged.
Regards,
Andreas
************************************************************************
* Andreas Weingessel *
************************************************************************
* Institut f=FCr Statistik * Tel: (+43 1) 58801 4541 =
*
* Technische Universit=E4t Wien * Fax: (+43 1) 504 14 98 =
*
* Wiedner Hauptstr. 8-10/1071 * Andreas.Weingessel@ci.tuwien.ac.at *
* A-1040 Wien, Austria * http://www.ci.tuwien.ac.at/~weingessel *
************************************************************************
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-