操作only on the levels
似乎保持你的精度水平,而不是将你的矢量转换为character
向量并且效率更高,因为它将您操作的数据大小减少为唯一值(而不是整个向量)
levels(vec) <- sapply(strsplit(levels(vec), " - "),
function(x) paste(prettyNum(x,
big.mark = ",",
preserve.width = "none"),
collapse = " - "))
vec
# [1] 0 - 100 0 - 100 0 - 100 0 - 100 150.22 - 170.33
# [6] 1,000 - 2,000 1,000 - 2,000 1,000 - 2,000 1,000 - 2,000 7,000 - 10,000
# [11] 7,000 - 10,000 7,000 - 10,000 7,000 - 10,000 7,000 - 10,000 1,000,000 - 22,000,000
# [16] 1,000,000 - 22,000,000 1,000,000 - 22,000,000 44,000,000 - 66,000,000.8989898989
# Levels: 0 - 100 150.22 - 170.33 1,000 - 2,000 7,000 - 10,000 1,000,000 - 22,000,000 44,000,000 - 66,000,000.8989898989