Skip to content

Commit 2110235

Browse files
committed
support big.mark
1 parent 473e462 commit 2110235

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

R/classInt.R

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ findCols <- function(clI, factor = FALSE) {
481481
# partition intervals are closed on the left or the right
482482
# Added dataPrecision for rounding of the interval endpoints
483483
tableClassIntervals <- function(cols, brks, under="under", over="over",
484-
between="-", digits = getOption("digits"), cutlabels=TRUE, intervalClosure=c("left", "right"), dataPrecision=NULL, unique=FALSE, var) {
484+
between="-", digits = getOption("digits"), cutlabels=TRUE, intervalClosure=c("left", "right"), dataPrecision=NULL, unique=FALSE, big.mark=NULL, var) {
485485
# Matthieu Stigler 120705 unique
486486
# Matthieu Stigler 120705
487487
intervalClosure <- match.arg(intervalClosure)
@@ -504,16 +504,16 @@ tableClassIntervals <- function(cols, brks, under="under", over="over",
504504

505505
#The two global endpoints are going through roundEndpoint to get
506506
# formatting right, nothing more
507-
if (cutlabels) nres[1] <- paste("[", roundEndpoint(brks[1], intervalClosure, dataPrecision), between, roundEndpoint(brks[2], intervalClosure, dataPrecision), right, sep=sep)
507+
if (cutlabels) nres[1] <- paste("[", roundEndpoint(brks[1], intervalClosure, dataPrecision, big.mark), between, roundEndpoint(brks[2], intervalClosure, dataPrecision, big.mark), right, sep=sep)
508508
else nres[1] <- paste(under, roundEndpoint(brks[2], intervalClosure, dataPrecision), sep=sep)
509509
for (i in 2:(lx - 2)) {
510-
if (cutlabels) nres[i] <- paste(left, roundEndpoint(brks[i], intervalClosure, dataPrecision), between, roundEndpoint(brks[i + 1], intervalClosure, dataPrecision), right,
510+
if (cutlabels) nres[i] <- paste(left, roundEndpoint(brks[i], intervalClosure, dataPrecision, big.mark), between, roundEndpoint(brks[i + 1], intervalClosure, dataPrecision, big.mark), right,
511511
sep=sep)
512-
else nres[i] <- paste(roundEndpoint(brks[i], intervalClosure, dataPrecision), between, roundEndpoint(brks[i + 1], intervalClosure, dataPrecision), sep=sep)
512+
else nres[i] <- paste(roundEndpoint(brks[i], intervalClosure, dataPrecision, big.mark), between, roundEndpoint(brks[i + 1], intervalClosure, dataPrecision, big.mark), sep=sep)
513513
}
514-
if (cutlabels) nres[lx - 1] <- paste(left, roundEndpoint(brks[lx - 1], intervalClosure, dataPrecision), between, roundEndpoint(brks[lx], intervalClosure, dataPrecision), "]",
514+
if (cutlabels) nres[lx - 1] <- paste(left, roundEndpoint(brks[lx - 1], intervalClosure, dataPrecision, big.mark), between, roundEndpoint(brks[lx], intervalClosure, dataPrecision, big.mark), "]",
515515
sep=sep)
516-
else nres[lx - 1] <- paste(over, roundEndpoint(brks[lx - 1], intervalClosure, dataPrecision), sep=sep)
516+
else nres[lx - 1] <- paste(over, roundEndpoint(brks[lx - 1], intervalClosure, dataPrecision, big.mark), sep=sep)
517517
tab <- table(factor(cols, levels=1:(lx - 1)))
518518
names(tab) <- nres
519519

@@ -538,7 +538,7 @@ tableClassIntervals <- function(cols, brks, under="under", over="over",
538538

539539
# change contributed by Richard Dunlap 090512
540540
# New helper method for tableClassIntervals
541-
roundEndpoint <- function(x, intervalClosure=c("left", "right"), dataPrecision) {
541+
roundEndpoint <- function(x, intervalClosure=c("left", "right"), dataPrecision, big.mark) {
542542
# Matthieu Stigler 120705
543543
intervalClosure <- match.arg(intervalClosure)
544544
if (is.null(dataPrecision)) {
@@ -551,11 +551,16 @@ roundEndpoint <- function(x, intervalClosure=c("left", "right"), dataPrecision)
551551
{
552552
retval <- floor(x * 10^dataPrecision) / 10^dataPrecision
553553
}
554+
555+
if(!missing(big.mark)) if(is.character(big.mark)) {
556+
retval <- prettyNum(retval, big.mark = big.mark)
557+
}
558+
554559
digits = getOption("digits")
555560
format(retval, digits=digits, trim=TRUE)
556561
} #FIXME output trailing zeros in decimals
557562

558-
print.classIntervals <- function(x, digits = getOption("digits"), ..., under="under", over="over", between="-", cutlabels=TRUE, unique=FALSE) {
563+
print.classIntervals <- function(x, digits = getOption("digits"), ..., under="under", over="over", between="-", cutlabels=TRUE, unique=FALSE, big.mark = NULL) {
559564
if (!inherits(x, "classIntervals")) stop("Class interval object required")
560565
cat("style: ", attr(x, "style"), "\n", sep="")
561566
UNITS <- attr(x, "var_units")
@@ -573,7 +578,7 @@ print.classIntervals <- function(x, digits = getOption("digits"), ..., under="un
573578
# change contributed by Richard Dunlap 090512
574579
# passes the intervalClosure argument to tableClassIntervals
575580
tab <- tableClassIntervals(cols=cols, brks=nbrks, under=under, over=over,
576-
between=between, digits=digits, cutlabels=cutlabels, intervalClosure=attr(x, "intervalClosure"), dataPrecision=attr(x, "dataPrecision"), unique=unique, nvar)
581+
between=between, digits=digits, cutlabels=cutlabels, intervalClosure=attr(x, "intervalClosure"), dataPrecision=attr(x, "dataPrecision"), unique=unique, big.mark = big.mark, var = nvar)
577582
print(tab, digits=digits, ...)
578583
invisible(tab)
579584
}

0 commit comments

Comments
 (0)