2016-09-21 9 views
7

Я хотел бы иметь последовательный вывод для конкретного сценария R. В этом случае я хотел бы, чтобы весь числовой вывод находился в научной нотации с точностью до двух знаков после запятой.Вывод R-выхода для научной нотации не более двух десятичных знаков

Примеры:

0.05 --> 5.00e-02 
0.05671 --> 5.67e-02 
0.000000027 --> 2.70e-08 

Я попытался с помощью следующих параметров:

options(scipen = 1) 
options(digits = 2) 

Это дало мне результаты:

0.05 --> 0.05 
0.05671 --> 0.057 
0.000000027 --> 2.7e-08 

я получил те же результаты, когда я попытался:

options(scipen = 0) 
options(digits = 2) 

Благодарим за любые советы.

+1

Вы были почти там: 'опции (цифры = 3, scipen = -2)'. Я удалил это как ответ, хотя, потому что я не знаю, есть ли у вас действительно большие числа - это не сработает для этого. Было бы лучше, если бы кто-то еще знал действительно всеобъемлющий способ сделать это по типам номеров, но в крайнем случае, и если у вас есть только небольшие цифры, это сделает это. – HFBrowning

ответ

15

Я думаю, что лучше всего использовать formatC, а не изменять глобальные настройки.

Для вашем случае это может быть:

numb <- c(0.05, 0.05671, 0.000000027) 
formatC(numb, format = "e", digits = 2) 

Что дает:

[1] "5.00e-02" "5.67e-02" "2.70e-08"