我有一个data set,有61个观察值和2个变量 . 当我总结整个数据时,第二个变量的分位数,中位数,平均值和最大值有时不同于我从第二个变量汇总得到的结果 . 这是为什么?
data <- read.csv("testdata.csv")
head(data)
# Group.1 x
# 1 10/1/12 0
# 2 10/2/12 126
# 3 10/3/12 11352
# 4 10/4/12 12116
# 5 10/5/12 13294
# 6 10/6/12 15420
summary(data)
# Group.1 x
# 10/1/12 : 1 Min. : 0
# 10/10/12: 1 1st Qu.: 6778
# 10/11/12: 1 Median :10395
# 10/12/12: 1 Mean : 9354
# 10/13/12: 1 3rd Qu.:12811
# 10/14/12: 1 Max. :21194
# (Other) :55
summary(data[2])
# x
# Min. : 0
# 1st Qu.: 6778
# Median :10395
# Mean : 9354
# 3rd Qu.:12811
# Max. :21194
# The following code yield different result:
summary(data$x)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 0 6778 10400 9354 12810 21190
1 回答
@ r2evans的评论是正确的,因为差异是由
summary.data.frame
和summary.default
的差异引起的 .两种方法的默认值
digits
均为max(3L, getOption("digits") - 3L)
. 如果您尚未更改选项,则评估为4L
. 但是,这两种方法在格式化输出时使用不同的digits
参数,这是两种方法输出差异的原因 . 来自?summary
:假设我们在问题中有
x
的摘要统计数据的向量:在
summary.default
中,使用signif
格式化输出,将其输入舍入为提供的有效数字digits
:虽然
summary.data.frame
使用format
,它使用它的digits
参数作为要显示的有效位数的sugggestion(?format):因此,当使用默认的
digits
参数值4
时,summary.default(data$x)
将5位分位数舍入为4位有效数字;但是summary.data.frame(data[2])
显示5位分位数而没有舍入 .如果您明确提供
digits
参数大于4,您将得到相同的结果:作为默认
digits
的两种方法的差异的极端例子: