2016-07-19 2 views
0

Начиная с R (3.3.1 64 бит в Windows), я обнаружил, что mean() предоставляет слишком много дробных цифр, поэтому я использовал round (x, 1), чтобы обрезать их. Хотя это работает для меньших чисел, несколько больших чисел выводятся в странном формате, который не подчиняется правилам округления (IMHO): Я вижу вывод 1.330710e+04. Очевидно, что это число должно быть 13307.1; в показанном формате на самом деле отображаются две дробные цифры. Есть ли способ получить более красивое форматирование? Я сделал ошибку?формат округлых больших чисел в R

+3

попробовать 'опции (цифры = 10)' –

+0

документы говорят, по умолчанию '7', но когда я изменить его на' 7' выход правильно (при использовании интерактивной 'печати()'), также. Кажется, что 'цифры 'даже переопределяют дробные цифры' round() 'возвращает. Есть ли какая-то четкая документация? –

ответ

1
> format(round(345678998766.01)) 
[1] "3.45679e+11" 

> format(round(345678998766.01), digits = 10) 
[1] "345678998766" 

> format(round(mean(c(345678998766.01, 345678998766.01)))) 
[1] "3.45679e+11" 

> format(round(mean(c(345678998766.01, 345678998766.01))), digits = 10) 
[1] "345678998766" 
+0

Один связанный вопрос: какая функция используется R для неявного вывода (т. Е .: если я введу '1 + 2')? 'print',' format' или что-то еще? –

Смежные вопросы