R语言 如何防止科学记号
R编程语言中的科学记号被认为等同于指数格式。科学记号用于以小数形式处理的非常大或小的数字。在R语言中,E型符号被用于此类数字。在这篇文章中,我们将看到如何在R语言编程中防止科学记号。
方法1:使用scipen选项
为了消除整数的指数符号,我们可以使用options()方法进行全局设置,通过设置scipen参数,也就是options(scipen = n)。
Scipen: 当决定以固定符号或指数符号打印数值时,要应用的惩罚。正值偏向于固定符号,负值偏向于科学符号:除非固定符号的宽度超过scipen数字,否则固定符号将被优先考虑。
scipen值是整数提示指数记号的一个指标。为了防止科学记数法的触发,可以使用任何大的正数,以达到所有的实际目的。然而,这种方法会对整个R的配置设置做出改变。
options(scipen=999)
这个选项可以通过使用0作为scipen值来重置。
代码
num = 12383828281831342
print ("original number :")
print (num)
# after global setting for
# options
options(scipen = 100, digits = 4)
# declaring the number
num = 12383828281831342
print ("Modified number :")
print (num)
输出
[1] "original number :"
[1] 1.238383e+16
[1] "Modified number :"
[1] 12383828281831342
方法2:使用 format() 方法
为了禁用任何函数输出或数字整数的科学选项,可以自定义R中的格式方法。对原始整数进行修改。这消除了数字的自动指数表示法。这种方法可用于我们希望为一个特定的数字消除科学符号,而不是全局设置。
语法: format(number, scientific = FALSE)
返回: 具有完全相同位数的指数型数字。然而,输出结果是作为一个字符变量对象返回的。因此,需要明确地将其转换为整数,以便将其用于进一步的目的。
例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"