我想在我的报告格式化数字到significant digits,但保留尾随显著零和格式正确大量格式号码显著数字很好R中
例如数字C(10.00001,12345,1234.5,123.45, 1.2345,0.12345)3显著的数字应该是10.0,12300,1230,123,1.23,0.123但我得到不同的方法(和没有不同的结果似乎universaly工作。
> 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] "0.123"
[1] "0.123"
这里,signif和格式轮10.00001的结果formatC with flag =“#”正确地做出小数字,但不是大数字
有没有更好的方法?
也尝试申请,lapply和sapply,而不是循环的... – 2010-07-14 12:53:38
我可能有一个总概念上的错误,但不会对'的功能apply'家庭仍然使用循环?但是它将代码的循环抽象出来,更简洁,更易于阅读,而且管理更少。对? – 2010-07-14 13:29:43
对不起,循环只是为了显示结果,我原来有signif(数字,数字= 3),但由于某种原因默认为科学记数法。 – PaulHurleyuk 2010-07-14 14:22:46