如何防止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 中的格式方法。对原始整数进行修改。这消除了数字的自动指数表示。如果我们希望消除特定数字的科学记数法而不是全局设置,则可以使用此方法。
Syntax: format(number, scientific = FALSE)
Returns : The exponential number with the exactly same number of digits. However, the output is returned as a character variable object. So, it needs to be converted to an integer explicitly, in order to use it for further purposes.
示例 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"