📌  相关文章
📜  如何防止R中的科学记数法?

📅  最后修改于: 2022-05-13 01:55:06.653000             🧑  作者: Mango

如何防止R中的科学记数法?

R 编程语言中的科学记数法被认为等同于指数格式。科学记数法用于以十进制形式处理的极大或极小数字。在 R 语言中,E 符号用于此类数字。在本文中,我们将了解如何在 R 编程中避免使用科学记数法。

方法 1:使用 scipen 选项

为了消除整数的指数表示法,我们可以使用 options() 方法进行全局设置,通过设置 scipen 参数,即 options(scipen = n)。

Scipen:决定以固定或指数表示法打印数值时要应用的惩罚。正值偏向固定,负值偏向科学记数法:固定记数法将是首选,除非它比 scipen 数字更宽。

scipen 值是整数提示指数符号的指示符。为了防止触发科学记数法,出于所有实际目的,可以使用任何大的正数。但是,此方法会更改整个 R 配置设置。



options(scipen=999)

可以通过使用 0 作为 scipen 值来重置此选项。

代码:

R
num = 12383828281831342
print ("orignal number :")
print (num)
  
# after global setting for
# options 
options(scipen = 100, digits = 4)
  
# declaring the number
num = 12383828281831342
print ("Modified number :")
print (num)


R
# declaring an integer number
num = 1000000000000
print ("original number")
print (num)
  
print ("modified number")
format(num, scientific = F)


R
# declaring an exponential number
num =2.21e+09
print ("original number")
print (num)
  
print ("modified number")
format(num, scientific = FALSE)


输出:

[1] "orignal number :"
[1] 1.238383e+16
[1] "Modified number :"
[1] 12383828281831342

方法 2:使用format()方法

为了禁用任何函数输出或数字整数的科学选项,可以自定义 R 中的格式方法。对原始整数进行修改。这消除了数字的自动指数表示。如果我们希望消除特定数字的科学记数法而不是全局设置,则可以使用此方法。

示例 1:

电阻

# declaring an integer number
num = 1000000000000
print ("original number")
print (num)
  
print ("modified number")
format(num, scientific = F)

输出:

[1] "original number"
[1] 1e+12
[1] "modified number"
[1] "1000000000000"

示例 2:

电阻

# declaring an exponential number
num =2.21e+09
print ("original number")
print (num)
  
print ("modified number")
format(num, scientific = FALSE)

输出

[1] "original number"
[1] 2.21e+09
[1] "modified number"
[1] "2210000000"