2

科学表記法で数値を表現せずにデータ構造を JSON に変換する際に問題があります。

library(rjson)

options(scipen=1000)

toJSON(c(1200000000, 400000))

# [1] "[1.2e+08,400000]"

どうすれば出力できます"[1200000000,400000]"か?

4

1 に答える 1

1

2018年からの更新:jsonlite最近はみんなと同じように使用してください:

> toJSON(c(1200000000, 400000))
[1200000000,400000] 

2012年の元の回答:

toJSON@gaudenが上で書いたように、に渡す前に数値を文字列に変換することもお勧めします。ただし、それを行わない場合は、オプションRJSONIOのあるパッケージを試してください(とにかく高速です) :digits

>  toJSON(c(1200000000, 400000), digits = 10)
[1] "[  1200000000,      400000 ]"

ただし、これにより、ご覧のとおり、余分な空白が発生します。


更新: @gaudenが回答を削除したようですので、詳細を追加してください

formatたとえば、次のように「数字」を JSON に変換する前に呼び出すことができます。

> toJSON(format(c(1200000000, 400000), scientific = FALSE, trim = TRUE))
[1] "[\"1200000000\",\"400000\"]"
于 2012-05-30T20:42:24.303 に答える