考虑以下代码,
x <- 1000 * 1.23
x
返回1230
format(x, scientific=TRUE)
返回1.23e + 03
但如果我有
y <- 10000 * 1.23
y
返回12300
format(y, scientific=TRUE)
返回1.23e + 04
如何格式化y值以便控制指数?
我希望y表达为12.3e + 03?
答案 0 :(得分:2)
R和大多数编程语言只支持normalized scientific notation。当然,你总是可以自己动手:
scientific <- function(x, exponent = 3) {
opts <- options(scipen = 20); on.exit(options(opts))
sprintf("%se%s%02d", x / 10^exponent, if (exponent >= 0) '+' else '-', abs(exponent))
}
cat(scientific(12300, 4)) # 1.23e+04
cat(scientific(12300, 3)) # 12.3e+03