[R] mysterious rounding digits output
Martin Maechler
m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Thu May 31 08:58:07 CEST 2018
>>>>> Ted Harding
>>>>> on Thu, 31 May 2018 07:10:32 +0100 writes:
> Well pointed out, Jim!
> It is infortunate that the documentation for options(digits=...)
> does not mention that these are *significant digits*
> and not *decimal places* (which is what Joshua seems to want):
Since R 3.4.0 the help on ?options *does* say significant!
The change in R's source code was this one, 14 months ago :
------------------------------------------------------------------------
r72380 | maechler | 2017-03-21 11:28:13 +0100 (Tue, 21. Mar 2017) | 2 Zeilen
GeƤnderte Pfade:
M /trunk/src/library/base/man/options.Rd
digits: + "signficant"
------------------------------------------------------------------------
and since then, the text has been
‘digits’: controls the number of significant digits to print when
printing numeric values. It is a suggestion only.
.......
whereas what you (Ted) cite is from R 3.3.x and earlier
> "‘digits’: controls the number of digits to print when
> printing numeric values."
Maybe we should additionally say that this is *not* round()ing,
and give a link to the help for signif() ?
> On the face of it, printing the value "0,517" of 'ccc' looks
> like printing 4 digits! Joshua's could look even worse if 'ddd'
> had values in the 1000s!
> To achieve exactly what Joshua seems to want, use the round()
> function. Starting with his original assignment of values to
> the variable itemInfo, the result of round(itemInfo,digits=3) is:
> aaa bbb ccc ddd eee
> skill 1.396 6.225 0.517 5.775 2.497
> predict 1.326 5.230 0.462 5.116 -2.673
> waiting 1.117 4.948 NA NA NA
> complex 1.237 4.170 0.220 4.713 5.642
> novelty 1.054 4.005 0.442 4.260 2.076
> creative 1.031 3.561 0.362 3.689 2.549
> evaluated 0.963 3.013 NA NA NA
> body 0.748 2.238 0.596 2.019 0.466
> control 0.620 2.149 NA NA NA
> stakes 0.541 1.905 0.227 2.020 2.343
> spont 0.496 1.620 NA NA NA
> chatter 0.460 1.563 0.361 1.382 0.540
> present 0.428 1.236 0.215 1.804 2.194
> reward 0.402 1.101 0.288 1.208 0.890
> feedback 0.283 0.662 NA NA NA
> goal 0.237 0.474 NA NA NA
> Best wishes to all,
> Ted.
> On Thu, 2018-05-31 at 15:30 +1000, Jim Lemon wrote:
>> Hi Joshua,
>> Because there are no values in column ddd less than 1.
>>
>> itemInfo[3,"ddd"]<-0.3645372
>> itemInfo
>> aaa bbb ccc ddd eee
>> skill 1.396 6.225 0.517 5.775 2.497
>> predict 1.326 5.230 0.462 5.116 -2.673
>> waiting 1.117 4.948 NA 0.365 NA
>> complex 1.237 4.170 0.220 4.713 5.642
>> novelty 1.054 4.005 0.442 4.260 2.076
>> creative 1.031 3.561 0.362 3.689 2.549
>> evaluated 0.963 3.013 NA NA NA
>> body 0.748 2.238 0.596 2.019 0.466
>> control 0.620 2.149 NA NA NA
>> stakes 0.541 1.905 0.227 2.020 2.343
>> spont 0.496 1.620 NA NA NA
>> chatter 0.460 1.563 0.361 1.382 0.540
>> present 0.428 1.236 0.215 1.804 2.194
>> reward 0.402 1.101 0.288 1.208 0.890
>> feedback 0.283 0.662 NA NA NA
>> goal 0.237 0.474 NA NA NA
>>
>> digits specifies the number of significant digits ("It is a suggestion
>> only"), so when at least one number is padded with a leading zero it
>> affects the formatting of the other numbers in that column. I suspect
>> that this is an esthetic consideration to line up the decimal points.
>>
>> Jim
>>
>>
>> On Thu, May 31, 2018 at 11:18 AM, Joshua N Pritikin <jpritikin using pobox.com> wrote:
>> > R version 3.5.0 (2018-04-23) -- "Joy in Playing"
>> > Platform: x86_64-pc-linux-gnu (64-bit)
>> >
>> > options(digits=3)
>> >
>> > itemInfo <- structure(list("aaa" = c(1.39633732316667, 1.32598263816667, 1.11658324066667, 1.23651072616667, 1.05368679983333, 1.03100737383333, 0.9630728395, 0.7483865045, 0.620086646166667, 0.5411017985, 0.496397607833333, 0.459528044666667, 0.427877047833333, 0.402085979666667, 0.283161181233333, 0.236896277233333), "bbb" = c(6.22533860696667, 5.229736804, 4.94816041772833, 4.17020503255333, 4.00453781427167, 3.56058007398333, 3.0125202404, 2.23782358733333, 2.14863910661167, 1.90460903044777, 1.62001089796667, 1.56341257968151, 1.23618558850667, 1.10086688908262, 0.661981500639833, 0.47397754310745), "ccc" = c(0.5165911355, 0.462204707666667, NA, 0.219635924333333, 0.441863780833333, 0.361502865833333, NA, 0.596137946666667, NA, 0.226984771566667, NA, 0.360922661583333, 0.2145347068, 0.287756249483333, NA, NA ), "ddd" = c(5.77538400186667, 5.115877113, NA, 4.71294520316667, 4.25952652129833, 3.68879921863167, NA, 2.01942456211145, NA, 2.02032557108, NA, 1.381810875
>> 9571, 1.80436759778167, 1.20789851993367, NA, NA), "eee" = c(2.49725347166667, -2.67340172316667, NA, 5.64195206333333, 2.07633555233333, 2.548949539, NA, 0.465537272243167, NA, 2.34255027516667, NA, 0.5400824922975, 2.1935000655, 0.890007976866667, NA, NA)), row.names = c("skill", "predict", "waiting", "complex", "novelty", "creative", "evaluated", "body", "control", "stakes", "spont", "chatter", "present", "reward", "feedback", "goal"), class = "data.frame")
>> >
>> > itemInfo # examine column ddd
>> >
>> > When I try this, column ddd has 1 fewer digits than expected. See the
>> > attached screenshot.
>> >
>> > Why don't all the columns have the same number of digits displayed?
>> >
>> > --
>> > Joshua N. Pritikin, Ph.D.
>> > Virginia Institute for Psychiatric and Behavioral Genetics
>> > Virginia Commonwealth University
>> > PO Box 980126
>> > 800 E Leigh St, Biotech One, Suite 1-133
>> > Richmond, VA 23219
>> > http://exuberant-island.surge.sh
>> >
>> > ______________________________________________
>> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> > and provide commented, minimal, self-contained, reproducible code.
>> >
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list