[Rd] Argument as.integer(NA) to a function C
Christophe Genolini
cgenolin at u-paris10.fr
Thu Jun 18 15:57:24 CEST 2009
Hi the list,
I am writing a R function that call a C function. The C function needs
integers but I do not manage to give a NA integer as argument :
--- C code ---
void essai(int *t){
Rprintf("\nT0=%i T1=%i T2=%i T3=%i",t[0],t[1],t[2],t[3]);
}
--- R ---
boub <- c(1,2,3,4)
.C("pour",as.integer(boub),NAOK=TRUE)
# T0=1 T1=2 T2=3 T3=4[[1]]
# [1] 1 2 3 4
boub <- c(1,2,NA,4)
.C("essai",as.integer(boub),NAOK=TRUE)
# T0=1 T1=2 T2=-2147483648 T3=4[[1]]
# [1] 1 2 NA 4
--- ---
In the second example, T2=-2147483648 and not NA.
I check the "writing R extension", there is a part that explain that the
test of NA is not the same between double and integer (NA_INTEGER,
ISNA), but I did not find explanation on passing NA argument as integer.
Any idea of what is wrong in my code?
Christophe
More information about the R-devel
mailing list