我想将报表中的数字格式化为有效数字,但保持尾随重要的零并正确格式化大数字
例如,数字c(10.00001,12345,1234.5,123.45,1.2345,0.12345)到3位有效数字应该是10.0,12300,1230,123,1.23,0.123但是我用不同的方法得到了不同的结果(并且似乎没有一个通用的工作.
> numbers<-c(10.00001,12345,1234.5,123.45,1.2345,0.12345)
> for(n in seq(numbers)){
+ print(signif(numbers[n],digits=3))
+ print(format(numbers[n],digits=3))
+ print(formatC(numbers[n], digits=3,format="fg"))
+ print(formatC(numbers[n], digits=3,format="fg", flag="#"))
+ }
[1] 10
[1] "10"
[1] " 10"
[1] "10.0"
[1] 12300
[1] "12345"
[1] "12345"
[1] "12345."
[1] 1230
[1] "1234"
[1] "1234"
[1] "1234."
[1] 123
[1] "123"
[1] " 123"
[1] "123."
[1] 12.3
[1] "12.3"
[1] "12.3"
[1] "12.3"
[1] 1.23
[1] "1.23"
[1] "1.23"
[1] "1.23"
[1] 0.123
[1] "0.123"
[1] …Run Code Online (Sandbox Code Playgroud) 我需要一个R函数,它始终返回小数点后面的相同位数,无论参数有多大.我试过round()但是这样做不起作用.这是我的例子:
Rweb:> round(111234.678912,4) # expect 111234.6789
[1] 111234.7
Rweb:> round(111234.678912/10,4) # expect 11123.4679
[1] 11123.47
Rweb:> round(111234.678912/100,4) # expect 1112.3468
[1] 1112.347
Rweb:> round(111234.678912/1000,4)
[1] 111.2347
Rweb:> round(111234.678912/10000,4)
[1] 11.1235
Run Code Online (Sandbox Code Playgroud)
如果参数是指数格式但我需要使用浮动格式的数字,它确实有效.
我在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位小数的有理数.