は食い違いがsummary.data.frame
とsummary.default
の違いによって引き起こされることで正しいです。
両方の方法のデフォルト値はdigits
です。max(3L, getOption("digits") - 3L)
です。オプションを変更していない場合は、4L
と評価されます。ただし、2つのメソッドの出力の違いの理由は、出力の書式設定時に2つのメソッドの引数がそれぞれdigits
のものとは異なっています。 ?summary
から:
digits
:整数、signif()
(summary.default
)またはformat()
(summary.data.frame
用)でフォーマット番号に使用。
q <- append(quantile(data$x), mean(data$x), after = 3L)
q
## 0% 25% 50% 75% 100%
## 0.00 6778.00 10395.00 9354.23 12811.00 21194.00
summary.default
では出力がsignif
を使用してフォーマットされ、それが重要なdigits
の供給数に入力します丸め:
は、私たちが問題になっている
x
の要約統計量のベクトルを持っていると言います。
summary.data.frame
が使用
format
を、使用しています
signif(q, digits = 4L)
## 0% 25% 50% 75% 100%
## 0 6778 10400 9354 12810 21190
ながらそれはdigits
引数ですディスプレイに有効桁の数としてのみsugggestion(?format
):このよう
format(q, digits = 4L)
## 0% 25% 50% 75% 100%
## " 0" " 6778" "10395" " 9354" "12811" "21194"
、デフォルトdigits
引数値4
、summary.default(data$x)
ラウンドのみ4桁の有効数字に5桁の変位値を使用する場合、 summary.data.frame(data[2])
は、5桁の分位数を丸めずに表示します。
あなたが明示的に4より大きいとしてdigits
引数を指定した場合、あなたが買ってあげる同じ結果:
df <- data.frame(a = 1e5 + 0:100)
summary(df$a)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 100000 100000 100000 100000 100100 100100
summary(df)
## a
## Min. :100000
## 1st Qu.:100025
## Median :100050
## Mean :100050
## 3rd Qu.:100075
## Max. :100100
:デフォルト
digits
を持つ2つの方法の違いの極端な例として、
summary(data[2], digits = 5L)
## x
## Min. : 0.0
## 1st Qu.: 6778.0
## Median :10395.0
## Mean : 9354.2
## 3rd Qu.:12811.0
## Max. :21194.0
summary(data$x, digits = 5L)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0 6778.0 10395.0 9354.2 12811.0 21194.0
あなたの呼び出しは 'summary.data.frame(data [2])'と 'summary.default(data $ x)'に相当します(S3解決後)。関数はわずかに異なって定義されており、統計も少し異なっているようです。四分位数の計算は、数値ベクトルの長さによって「解釈するまで」であり、Rのすべての関数がお互いまたはあなたと同じ仮定をするわけではありません。あなたが好む方法を見つけたり、自分で計算したりしてください(いくつかの詳細については '?quantile'を読んでください)。 – r2evans