An R NULL does not map to a C NULL. Please learn to distinguish documented facts from uninformed guesswork.
On Tue, 25 Oct 2005, Dominick Samperi wrote: > Prof Brian Ripley wrote: >> This is nothing to do with the C API: isVector and isMatrix are not >> part of the API (see Writing R Extensions for what it is). That's the >> `issue' here. >> >> On Tue, 25 Oct 2005, Dominick Samperi wrote: >> >>> Consider the R code: >>> mat <- matrix(seq(1,20),4,5) >>> is.matrix(mat) # gives TRUE >>> is.vector(mat) # gives FALSE >>> >>> On the other hand, if mat is passed through the .Call interface the >>> corresponding SEXP (call it smat) satisfies >>> isMatrix(smat) // TRUE >>> isVector(smat) // TRUE >>> >>> Consequently, you cannot distinguish matrices from vectors. Looking >>> at the dim attribute of a vector doesn't help because this is garbage. >> >> You can look to see if it has a dim attribute ... you could also look >> at the C code for is.vector. > The first option here does not seem to work. The code > > SEXP dimAttr = getAttrib(smat, R_DimSymbol) > > does not set dimAttr to 0 (NULL) wheh smat is actually a vector. > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel