Example:
library(Hmisc)
vals <- c(100, 1000, 2000, 3000, 40000, 50000, 60000)
vals_cut = cut2(vals, g=3)
vals_cut
This basically works; you might want to make cosmetic adjustments.
library(stringr)
trans_level <- function(x,nsep=" to ") {
n <- str_extract_all(x,"\\d+")[[1]] ## extract numbers
v <- format(as.numeric(n),big.mark=",",trim=TRUE) ## change format
x <- as.character(x)
paste0(
substring(x, 1, 1),
paste(v,collapse=nsep),
substring(x, nchar(x), nchar(x))) ## recombine
}
vals_cut2 <- vals_cut
levels(vals_cut2) <- sapply(levels(vals_cut),trans_level)
vals_cut2
[1] [100 to 3,000) [100 to 3,000) [100 to 3,000) [3,000 to 50,000) [3,000 to 50,000) [50,000 to 60,000] [50,000 to 60,000]
Levels: [100 to 3,000) [3,000 to 50,000) [50,000 to 60,000]