【发布时间】:2017-02-04 07:28:26
【问题描述】:
我有一个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
【问题讨论】:
-
您的调用等效于(在 S3 解析之后)
summary.data.frame(data[2])和summary.default(data$x)。函数的定义略有不同,统计数据也略有不同。计算四分位数取决于数字向量的长度,“取决于解释”,并非 R 中的所有函数都做出与彼此或您相同的假设。要么找到你喜欢的方法,要么自己计算(在阅读?quantile了解一些细节之后)。