Принятие 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)

Спасибо за любой совет.

2 ответа

Решение

Я думаю, что было бы лучше всего использовать 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"

Другой вариант заключается в использовании scientific от scales библиотека.

library(scales)
numb <- c(0.05, 0.05671, 0.000000027)

# digits = 3 is the default but I am setting it here to be explicit,
# and draw attention to the fact this is different than the formatC
# solution.
scientific(numb, digits = 3)

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

Заметка, digits установлен на 3, а не 2, как в случае с formatC

Другие вопросы по тегам