Thank for Brian D. Ripley for the answer to my previous question. My aim is to print single values from different real vectors with different digits option. This is quite a possible with Rprintf() but that one supprots printing format as C does, not in R native way (setting digits=7 or printing with "%12.7f" are two quite different things). So I would like to find something more R-ish.
PrintValue() seems promising (it understands when I change options(digits) but I did not get it to print a single value. I tried SEXP variable; PrintValue(VECTOR_ELT(variable, i)); which lead to crash, while PrintValue(variable); prints the whole vector. StringFromReal() (and printing as CHAR) is otherwise nice but I dont know how can I make it to understand options(digits). Can anybody suggest me a way for this? Best wishes, Ott BTW, can I be sure that everything defined in /usr/lib/R/include and R_ext are (more or less) safe to use? | From: Prof Brian D Ripley <[EMAIL PROTECTED]> | Date: Wed, 29 Jan 2003 09:01:44 +0000 (GMT Standard Time) | | On Wed, 29 Jan 2003, Ott Toomet wrote: | | > I want to print real numbers in C code with different values for | > digits. How to do that? | | Use Rprintf or PrintValue. You'll need to work hard to convince me that | Rprintf is not adequate. | | > As I have understood, what I should do is to call | > | > StringFromReal() | | That's a coercion, not a printing routine. | | > which calls FormatReal(), that one suggests the parameters (width, | > decimal places and exponential form). FormatReal() includes | > | > eps = pow(10.0, -(double)R_print.digits); | > | > So I guess I have to change the value of R_print.digits. | > R_print.digits is defined in include/Print.h in the package source, | > but unfortunately the installed version (in /usr/lib/R/include/R_ext) is | > quite a different. | | R_ext/Print.h and Print.h are not the same thing: one is not a version of | the other. The routines you mention are not documented in R-exts, and are | not part of the API. | | > I guess that is because the structure is not meant | > to be accessible by user, although some system routines alter | > R_print.digits directly. | | (Only the coercion and print routines!) | | > So are there any good way to achieve it? | | Temporarily change the options(digits) and call PrintValue(). You are not | meant to (and it is not safe to) mess with R's printing internals, and | these structures change even at patch releases. ______________________________________________ [EMAIL PROTECTED] mailing list http://www.stat.math.ethz.ch/mailman/listinfo/r-help
