2014-12-09 4 views
1

У меня есть некоторые номера, такие как num = c(0.1, 0.001, 1.12345e-5). Я хочу превратить num в качестве строки, причем каждый элемент отображается в научном формате с 3 цифрами. То есть num_after_convert = c('1.00e-1', '1.00e-3' , '1.12e-5'). Любое хорошее решение?Преобразование числа в строку в научном формате

+0

Посмотрите на [ '? formatC'] (https://stat.ethz.ch/R-manual/R-devel/library/base/html/formatc.html),' пример (formatC) 'и, возможно, также ['? sprintf'] (https://stat.ethz.ch/R-manual/R-devel/library/base/html/sprintf.html). –

ответ

2

sprintf функция даст вам максимальный контроль выхода и может гарантировать научную нотацию:

> num <- c(0.1, 0.001, 1.12345e-5) 
> sprintf("%4.2e", num) 
[1] "1.00e-01" "1.00e-03" "1.12e-05" 
> 
1

Попробуйте это, если вектор всегда имеет по крайней мере один элемент, уже в научной нотации, как в вашем примере:

format(num,digits=3) 
Смежные вопросы