我想在我的報告格式化數字到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