scales percent precision
Incidentally, ?scales::percent brings up exactly the same text as ?scales::percent_format
On 2014-02-27 Thu 14:47, Jacob Wegelin wrote:
But percent_format() does not take the argument, multiply it by 100, and paste on a percent sign, as we see here:
?scales::percent_format percent_format(0.0101010101)
Error in percent_format(0.0101010101) : unused argument(s) (0.0101010101)
args(percent_format)
function () NULL And how do we control the significant digits when we use percent()?
percent(0.0101010101)
[1] "1.01%" My point is that
?scales::percent_format
does not answer these questions. This is what I mean by saying that the function is not documented. On 2014-02-27 Thu 14:34, Dennis Murphy wrote:
Hi: On Thu, Feb 27, 2014 at 8:49 AM, Jacob Wegelin <jacobwegelin at fastmail.fm> wrote:
scales::percent appears not to be documented.
?scales::percent_format where it tells you that it takes its argument, multiplies it by 100 and then attaches a percent sign to it. For most situations, the data should be relative frequencies/proportions. BTW, many of the functions in the scales package are second-order R functions, which means there are two calls in the function invocation. The first call returns a function and the second is a call to the returned function.
Details: At http://cran.r-project.org/web/packages/scales/scales.pdf, equivalently in ?percent, I find no answer to the following two questions. (1) How can I specify the number of decimal points in a call to percent()? For instance, 0.010101 could be 1% 1.0% 1.01% etc. depending on what kind of report I'm writing. I can control precision myself by writing mypercent<-function(theargument, siglevel=2) { stopifnot(is.numeric(theargument)) paste(signif(theargument, siglevel) * 100, "%", sep="") } and then we have
mypercent(0.010101)
[1] "1%"
mypercent(0.010101, 5)
[1] "1.0101%"
mypercent(0.010101, 3)
[1] "1.01%"
percent_format() uses pretty breaks by default, so you'd probably want to pass your desired labels to scale_y_continuous() directly and avoid percent_format(). You could call the function on a vector of breaks and use the return values for the labels.
(2) What is the function precision() inside percent()? I find no documentation for it, and in fact it does not appear in the search path. Nor does round_any().
round_any() comes from the plyr package. I have no idea where precision() comes from; I've wondered about that myself a couple of times. I imagine it comes from one of the imported packages, but I didn't find it in any of plyr, stringr or labeling. I didn't check the color-related packages (RColorBrewer, dichromat or munsell). It could also be a hidden function. Dennis
percent(0.010101)
[1] "1.01%"
percent
function (x) {
x <- round_any(x, precision(x)/100)
str_c(comma(x * 100), "%")
}
<environment: 0x10c0f9350>
find("precision")
character(0)
find("round_any")
character(0)
Thanks for any insights Jacob Wegelin
sessionInfo()
R version 2.15.3 (2013-03-01) Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] tools grid splines stats graphics grDevices utils datasets methods base other attached packages: [1] scales_0.2.3 xtable_1.7-0 reshape2_1.2.2 moments_0.13 corrplot_0.70 ggplot2_0.9.3.1 nlme_3.1-108 loaded via a namespace (and not attached): [1] colorspace_1.2-0 dichromat_1.2-4 digest_0.6.0 gtable_0.1.2 labeling_0.1 lattice_0.20-13 MASS_7.3-23 munsell_0.4 [9] plyr_1.8 proto_0.3-10 psych_1.2.8 RColorBrewer_1.0-5 stringr_0.6.2
______________________________________________ R-help at r-project.org mailing list 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 at r-project.org mailing list 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.