2013-07-29 6 views
0

Я ищу быстрый и простой способ уменьшить точность числа в R, либо для отображения на диаграмме, либо для включения в отчет (текст или таблицу).Как уменьшить количество значащих цифр любого числа в R?

Моя функция go-to - sprintf(), но не кажется, что какой-либо из спецификаторов формата является достаточно общим для обработки всех возможных случаев, хотя то, что я ищу, довольно распространено (это то, что мы все преподавал в школе).

Например, если я хочу, чтобы округлить до 3 значащих цифр, я ищу формулу, которая может принять:

  • 1,239,451 и 1,240,000 вернуться
  • -12.1257 и вернуть -12,1
  • 0,0681 и вернуть .0681
  • 5 и вернуть 5

Примечание: This answer обеспечивает то, что я считаю, это Javas cript реализация такой функции, но я не эксперт по javascript, и синтаксис некоторых из используемых функций не очевиден для меня. Кроме того, мне любопытно, если я пропустил некоторые встроенные функции базы R или общую библиотеку, чтобы сделать именно это.

+3

Поиск "[г] значащих цифр" производит множество ответов: http://stackoverflow.com/q/3245862/271616, http://stackoverflow.com/q/3443687/271616, HTTP: //stackoverflow.com/q/2287616/271616, http://stackoverflow.com/q/1491124/271616. Его также можно найти в '? Round'. –

ответ

4
> formatC(signif(1239451, digits=3), big.mark=",", format="fg") 
[1] "1,240,000" 
> formatC(signif(-12.1257, digits=3), big.mark=",", format="fg") 
[1] "-12.1" 
> formatC(signif(.0581, digits=3), big.mark=",", format="fg") 
[1] "0.0581" 
> formatC(signif(5, digits=3), big.mark=",", format="fg") 
[1] "5" 
Смежные вопросы