时间:2021-05-20
控制R语言科学计算法显示有两个option: digitis和scipen。介绍的资料很少,而且有些是错误的。经过翻看R语言的帮助和做例子仔细琢磨,总结如下:
digits 有效数字字符的个数,默认是7, 范围是[1,22]
scipen 科学计数显示的penalty,可以为正为负,默认是0
R输出数字时,使用普通数字表示的长度 <= 科学计数法表示的字符长度 + scipen长度时,保留普通数字表示的长度,否者采用科学计数法表示。
一个简单的方法(不那么准确,比如digits=1时,没有小数点;数非常大时,指数可能是3位数)估算最长的数字串可以这样:
digits + 1 (小数点)+ 4 (e+XX科学计数法表示) + scipen
比如刚才最长不用科学计数法表示的数字长度是2+1+4+1 = 8
我们看看修改scipen = -2, 验证是不是最长数字长度是2+1+4 - 2 = 5
> options(scipen = -2)> 1234[1] 1234> 12345[1] 12345> 123456[1] 1.2e+05果然!
补充:R语言设置数值输出(保留至小数点后位数和保留有效数字)
在R语言中,数字的输出默认为7位:
> a = 0.1234567890 #10位> a[1] 0.1234568注:输出结果四舍五入。
通过options(digits)函数设置输出长度,当digits = 3时:
> options(digits = 3) > a = 0.1234567890 #10位> a[1] 0.123当digits = 10时:
> options(digits = 10)> a = 0.1234567890 #10位> a[1] 0.123456789digits最大取22,超过22会报错:
> options(digits = 3)> options(digits = 22)> options(digits = 23)Error in options(digits = 23) : invalid 'digits' parameter, allowed 0...22输出的结果只保留了9位,末尾的0被省略。
round(x, n)函数中,x为数字,n为小数点后保留的位数,设置n = 4时:
> a = 0.1234567890 #10位> round(a, 4)[1] 0.1235> a = 1.234567890 #小数点后9位> round(a, 4)[1] 1.2346注:输出结果四舍五入。
当设置n = 10时:
> a = 0.1234567890 #10位> round(a, 10)[1] 0.123456789输出的结果只保留了9位,末尾的0被省略。
当小数点后的0的位数超过n时,输出的结果为0:
> a = 0.0001234567890 #13位> round(a, 3)[1] 0> a = 0.0001234567890 #13位> round(a, 4)[1] 1e-04signif(x, n)函数中,x为数字,n为有效数字的个数 ,当n = 4时:
> a = 1.234567890 #小数点后9位> signif(a, 4)[1] 1.235> a = 0.000001234567890 #小数点后15位> signif(a, 4)[1] 1.235e-06当n = 10时:
> a = 1.234567890 #小数点后9位> signif(a, 10)[1] 1.23456789此时数字末尾的0依旧被省略。
通过sprintf(fmt, ...)函数可以保留末尾的0。
当输入为整数时,位数不够会在输入值前面补0:
> a = 12456789> sprintf("%03d", a)[1] "12456789"> a = 12> sprintf("%03d", a)[1] "012"欢迎大家批评指正。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
看代码吧~options(scipen=100)#小数点后100位不使用科学计数法options(digits=3)#保留小数点后三位补充:R语言将数据导出到c
我就废话不多说了,大家还是直接看代码吧~>#取消科学计数法>options(scipen=200)>#scipen表示在200个数字以内都不使用科学计数法补充:
计算机里的e是科学计数法符号。在科学计数法中,为了使公式简便,可以用带“E”的格式表示。 电子计算机(electroniccomputer)通称电脑,是现代一
前言在golang中,当浮点数超过一定数值的时候,golang会把它弄成科学计数法的形式进行显示(好像只要大于七位数就变成科学计数法了)varvalfloat6
引用计数Python语言默认采用的垃圾收集机制是『引用计数法ReferenceCounting』,该算法最早GeorgeE.Collins在1960的时候首次提