在R中,使用科学记数法10 ^而不是e +

时间:2015-04-22 00:26:25

标签: r

可能已经提出过这个问题,但我找不到直接的解决方案。有没有办法将数字转换为科学记数法,但形式为10 ^而不是默认的e +或E +?因此1000将变为1 * 10 ^ 3而不是1e + 3。谢谢!

1 个答案:

答案 0 :(得分:5)

要打印该号码,您可以将其视为字符串并使用sub重新格式化:

changeSciNot <- function(n) {
  output <- format(n, scientific = TRUE) #Transforms the number into scientific notation even if small
  output <- sub("e", "*10^", output) #Replace e with 10^
  output <- sub("\\+0?", "", output) #Remove + symbol and leading zeros on expoent, if > 1
  output <- sub("-0?", "-", output) #Leaves - symbol but removes leading zeros on expoent, if < 1
  output
}

一些例子:

> changeSciNot(5)
[1] "5*10^0"
> changeSciNot(-5)
[1] "-5*10^0"
> changeSciNot(1e10)
[1] "1*10^10"
> changeSciNot(1e-10)
[1] "1*10^-10"