在R中,使用科学符号10^而不是e+;

在R中,使用科学符号10^而不是e+;,r,R,可能有人问过这个问题,但我没有找到一个简单的解决办法。有没有办法把一个数字转换成它的科学符号,但形式是10^,而不是默认的e+或e+?因此,1000将变成1*10^3,而不是1e+3。谢谢 要打印数字,可以将其视为字符串,并使用sub重新格式化: changeSciNot <- function(n) { output <- format(n, scientific = TRUE) #Transforms the number into scientific notation e

可能有人问过这个问题,但我没有找到一个简单的解决办法。有没有办法把一个数字转换成它的科学符号,但形式是10^,而不是默认的e+或e+?因此,1000将变成1*10^3,而不是1e+3。谢谢

要打印数字,可以将其视为字符串,并使用
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
}

你想用这种格式保存数字还是简单地打印出来?在哪里?就在控制台里?总是吗?每一个号码?嗨!说得好。我想控制台会有用的。最终,我希望将数字打印到绘图中,但如果它对控制台有效,绘图应该显示我认为相同的内容。此外,这个问题通常发生在非常大的数字上,比如1000000,因为R会自动将其转换为1e+6。因为您写下“最终我希望将数字打印到绘图上”,这似乎是相关的。
> 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"