Convert numbers to SI prefix

前端 未结 5 734
温柔的废话
温柔的废话 2020-12-01 13:01

Is there a R function (or any package) allowing to format numbers (integer) using standard unit prefix (Kilo, Mega etc ...), so

10 -> 10
100 -> 1K
0.01         


        
5条回答
  •  生来不讨喜
    2020-12-01 13:59

    Slightly modified version to account for negative numbers :

    f2si<-function (number, rounding=F, digits=ifelse(rounding, NA, 6)) 
    {
    mysign <- ""
    if (number<0) {
        mysign <- "-"
    }
    number <- abs(number)
    lut <- c(1e-24, 1e-21, 1e-18, 1e-15, 1e-12, 1e-09, 1e-06, 
        0.001, 1, 1000, 1e+06, 1e+09, 1e+12, 1e+15, 1e+18, 1e+21, 
        1e+24, 1e+27)
    pre <- c("y", "z", "a", "f", "p", "n", "u", "m", "", "k", 
        "M", "G", "T", "P", "E", "Z", "Y", NA)
    ix <- findInterval(number, lut)
    if (ix>0 && ix

    }

提交回复
热议问题