2014/09/14
R
 >  指数表記で 3.00e+08 とかする方法
物理や化学の定数を、計算の簡単のため数桁に丸める時があります。例えば光速は毎秒 299,792,458 メートルですが 3.00×108 m/s にするなど。

ところが R で数値を丸める signif 関数や、書式設定用の format 関数および formatC 関数を使うと ↓ すべて 3.00 が 3 になってしまいます。(バージョン 2.15.3)

signif(299792458, digits=3)


format(299792458, digits=3)


formatC(299792458, digits=3)


format と formatC の関数の違いは知りませんが、三つとも同じ結果なので R はそういうものだと思ってました。ところが最近、sprintf 関数だけはきちんとなることが判明。

sprintf('%.2e', 299792458)


なお PostgreSQL では、書式が少し違いますが to_char 関数でできます。

SELECT to_char(299792458, '9.99EEEE') ;


以上、昨日に続いて R の細かい話でした。
<< 続きます → http://kenpg2.seesaa.…
例のメッセージなしで Rgui を起動 >>