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