7

すべての出力を小数点以下1桁で出力する出力を生成するコードを実行しています。ただし、コードは私が一般的に使用する関数を使用しており、これらの関数内で印刷出力が丸められることを指定したくありません。

この質問への回答Rの小数点以下の桁数のフォーマットoptions(digits=2)は、またはを使用することをお勧めしround(x, digits=2)ます。

最初のオプションは一般的な設定で、丸め1.234には最適です1.2が、次のように出力12.345されます。12

2番目のオプションは、関数内に配置すると機能しますが、それらには触れたくありません。これを一般的に設定する方法は?

4

2 に答える 2

8

あなたはこれを行うことができます:

print <- function(x, ...) {
    if (is.numeric(x)) base::print(round(x, digits=2), ...) 
    else base::print(x, ...)
}
于 2012-06-27T14:57:35.773 に答える
5

formatC小数点以下の桁数を指定して数字を印刷するのが好きです。そうすれば、常にwhenと。1のように印刷する必要があります。次のようなクラスnumericのオブジェクトのS3printメソッドを作成できます。"1.0"digits = 1format = "f"

print.numeric<-function(x, digits = 1) formatC(x, digits = digits, format = "f")

print(1)
# [1] "1.0"

print(12.4)
# [1] "12.4"

print(c(1,4,6.987))
# [1] "1.0" "4.0" "7.0"

print(c(1,4,6.987), digits = 3)
# [1] "1.000" "4.000" "6.987"
于 2012-06-27T16:35:50.607 に答える