7

R セッションでの計算の結果に科学的表記法を表示したくありません。できれば 3 桁ごとにコンマ (,) を付けて、実際の数字をすべて表示したいと考えています。

どうやってやるの? options(scipen = 999)切らない。

4

1 に答える 1

11

このprint.default関数は、options()['digits']割り当てる幅を「決定」する際に値を参照するため、「scipen」を最大化するだけでなく、幅を増やす必要がある場合があります。その幅が 16 を超える値には、OS 固有の問題があります。カンマのリクエストについては、... 忘れてください。R は財務報告システムではありません。この出力形式を強制する必要がある場合は、オブジェクトを特定のクラスに定義し、sprintf と formatC を使用してそれらの印刷メソッドを記述することができます。または、print.default を書き換えることができると思いますが、そうでない印刷操作にのみ影響する可能性があります。の他の 100 以上のメソッドの 1 つに渡されprintます。

出力方法があります。どちらも数値にカンマを挿入する「big.mark」引数を持っていますformatC()prettyNum()出力は"character"フォーマットされているため、作成した結果に対してそれ以上の計算を行わないでください。

コンマや通貨記号を含む数字の列を読み取る入力メソッドもあります。

setAs("character", "num.with.commas",  function(from) as.numeric(gsub(",", "", from))) 
setAs("character", "euro",
 function(from) as.numeric(gsub("€", "", from)))
setAs("character", "num_pct",
 function(from) as.numeric(gsub("%", "", from))/100)
# you will get warning messages if you have not defined the class,
#     ....  but this will still succeed

 Input <- "A B C
 1,000 1% 3.50€
 2,000 2% 4.77€
 3,000 3% €5.68
"
 DF <- read.table(textConnection(Input), header = TRUE,  
                colClasses = c("num.with.commas", "num_pct", "euro"))
 str(DF)
于 2012-05-30T20:19:20.457 に答える