Мне интересно, есть ли способ записать 0,000523 в экспоненциальном представлении (5.23x10-4
) в R
. Я использую команду xtable
для записи таблицы в latex
.
Как записать числа в экспоненциальном представлении в R
Ответы (2)
Вы можете использовать sprintf
следующим образом:
x <- c(0.000523, -523)
sprintf("%.2fx10^{%d}",
x/10^floor(log10(abs(x))),
floor(log10(abs(x))))
#[1] "5.23x10^{-4}" "-5.23x10^{2}"
Вам нужно будет написать некоторые ifelse
условия, чтобы иметь различное форматирование в зависимости от десятичных диапазонов.
person
Roland
schedule
06.01.2017
как насчет того, чтобы
gsub("e", "x10^", format(scientific = T, x))
отдать 5.23x10^-04
. хоть и не логически верный шаг
- person joel.wilson; 06.01.2017
Пакет xtable
предлагает функцию sanitize.numbers()
, которая может это сделать. Он работает с символами, поэтому сначала вам нужно использовать format()
для преобразования чисел в символы:
library(xtable)
sanitize.numbers(format(0.000523, scientific = TRUE),
type = "latex", math.style.exponents = TRUE)
## [1] "$5.23 \\times 10^{-4}$"
Как вы заметили, это дает не 5.23x10^-4
, а скорее эквивалент этого выражения в нотации LaTeX, что может быть не тем, что вам нужно.
person
Stibu
schedule
06.01.2017
format(x, scientific = T)
дает1] "5.23e-04"
- person joel.wilson   schedule 06.01.2017options(scipen = -15)
- person akrun   schedule 06.01.2017