科学记数法格式化的R解决方案

问题描述 投票:0回答:1

我正在寻找一种解决方案,使用标准格式 a x 10 b 以科学记数法格式化 R 中的数字。这是一些同行评审的科学期刊所要求的,手工修改图表可能会变得乏味。

下面是 R 标准“E 符号”的示例,以及我希望它的样子:

var<-0.00000000000000000000000000000031267781238
plot(1,main=var)

感谢您的任何建议!

r scientific-notation
1个回答
1
投票

函数 scinot 中存在一个解决方案,来自最新版本的 R 包 corto,可在 CRAN 上获得。该函数从单个值(或值向量)中生成一个表达式,然后可以用正确的上标打印出来。

用法:

scinot(0.00000543) # expression("5.43" ~ x ~ 10^"-6")

“图形”演示,取自函数示例:

numbers<-c(3.456e-12,0.00901,5670000,-3.16e18,0.000004522,rnorm(5,sd=0.0000001))
plot(0,xlim=c(0,10),ylim=c(0,10),type="n")
text(c(2,6),c(10,10),labels=c("Before","After"),font=2)
for(i in 10:1){
    text(c(2,6),c(i-1,i-1),labels=c(numbers[i],scinot(numbers)[i]))
}

© www.soinside.com 2019 - 2024. All rights reserved.