我在R中舍入数字时遇到问题.我有以下数据,我想将它们舍入为8位小数.
structure(c(9.50863385275955e-05, 4.05702267762077e-06, 2.78921491976249e-05,
8.9107773737659e-05, 5.0672643927135e-06, 5.87776809485182e-05,
2.76421630542694e-05, 5.51662570625727e-05, 2.52790624570593e-05,
2.00407457671806e-05, 8.33373482160056e-05, 7.8297940825207e-05,
2.00407457671806e-05, 8.33373482160056e-05, 7.8297940825207e-05,
2.00407457671806e-05, 8.33373482160056e-05, 7.8297940825207e-05
), .Names = c("CC/CC", "TT/CC", "CT/CC", "NC/CC", "CC/TT", "TT/TT",
"CT/TT", "NC/TT", "CC/CT", "TT/CT", "CT/CT", "NC/CT"))
Run Code Online (Sandbox Code Playgroud)
这些数字是指数的形式,我想将它们转换为8位小数的有理数.
Jos*_*ien 14
要精确控制数字格式,请尝试 formatC()
res <- structure(c(9.50863385275955e-05, 4.05702267762077e-06),
.Names = c("CC/CC", "TT/CC"))
formatC(res, format="f", digits=8)
Run Code Online (Sandbox Code Playgroud)
该signif函数舍入到特定的有效位数(并且round函数舍入到特定的小数位数).
res <- structure(c(9.50863385275955e-05, 4.05702267762077e-06),
.Names = c("CC/CC", "TT/CC"))
signif(res, digits=8)
Run Code Online (Sandbox Code Playgroud)
请注意,打印结果取决于选项,options(digits=7)...您还可以直接将digits参数指定为print:
print(pi, digits=3) # 3.14
print(pi, digits=17) # 3.1415926535897931
Run Code Online (Sandbox Code Playgroud)
下面是示出之间的差异的例子signif和round:
x <- c(pi, pi*1000, pi/1000)
round(x, 3) # 3.142 3141.593 0.003
signif(x, 3) # 3.14e+00 3.14e+03 3.14e-03
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15946 次 |
| 最近记录: |