@@ -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
483483tableClassIntervals <- 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