Числа формата к значащим цифрам приятно в R

Я хочу отформатировать числа в своих отчетах значащим цифрам, но продолжать запаздывать значительное обнуляет и правильно большие количества формата

Например, числа 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] "0.123"
[1] "0.123"

Здесь, signif и формат вокруг этих 10,00001 результатов. formatC с флагом = "#" правильно делает небольшие числа, но не большие количества.

Существует ли лучший путь?

25
задан PaulHurleyuk 14 July 2010 в 12:05
поделиться

3 ответа

Извините, что я не обновил это в то время. Ни одно из утверждений в моем вопросе, ни prettynum не работали. В конце концов я использовал

print(formatC(signif(numbers[n],digits=3), digits=3,format="fg", flag="#"))

который правильно справился с нулями в конце и большими числами.

28
ответ дан 28 November 2019 в 20:33
поделиться

Более простой вариант - options(), который просто выполняет округление. Если вы планируете делать это часто, советую обратить внимание на Sweave.

> a <- 1.23456789
> options(digits=2)
> a
[1] 1.2
> options(digits=6)
> a
[1] 1.23457
4
ответ дан 28 November 2019 в 20:33
поделиться

Известно ли вам о prettyNum () и всех его параметрах?

15
ответ дан 28 November 2019 в 20:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: