>>>>> "BDR" == Prof Brian Ripley <[EMAIL PROTECTED]> >>>>> on Mon, 23 Jul 2007 13:22:16 +0100 (BST) writes:
BDR> I think you are asking why calling asChar on a CHARSXP gives NA_STRING. BDR> In particular, the calls you mention *are* perfectly OK and work as BDR> intended. BDR> As barely documented in R-exts, asChar is designed for vector arguments: a BDR> CHARSXP is not a vector. It gives NA_STRING for invalid inputs. BDR> The asXXXX family of functions are designed to coerce as necessary user BDR> inputs, and CHARSXPs are not visible at R level. BDR> In general, with internal functions you are expected to BDR> read the code to find out what they do before using BDR> them. [..............] BDR> There is no R '2.4', but the behaviour of asChar was the same in R 2.4.0 BDR> except for the adding of SYMSXP at BDR> ------------- BDR> r40358 | maechler | 2007-01-04 11:07:04 +0000 (Thu, 04 Jan 2007) | 1 line BDR> eliminate CHAR_STAR in methods/src/ as per old "todo" BDR> ------------- BDR> which message does not help me at all. Perhaps Martin can explain? I had to " svn diff -r40357:40358 " to see : What I did was to basically add else if(TYPEOF(x) == SYMSXP) return PRINTNAME(x); to asChar() which allowed to eliminate a macro and a similar if() in C code from methods where there's been a long standing "TODO" about this. The only change this could have was to *not* return an NA in the 'symbol/name' cases it gave NA before. Martin ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel