R语言median函数与c函数的工作原理及相关疑问
关于R中median函数结果和“robust”术语的解释
为什么median(c(1:3, 100, 1000))返回3?
中位数的计算规则核心看数据点的数量:
- 当数据点数量为偶数时,取排序后中间两个数的平均值,比如
1:4排序后是[1,2,3,4],中间两个数是2和3,平均得2.5,这部分你已经理解。 - 当数据点数量为奇数时,直接取排序后位于正中间的那个数。
c(1:3, 100, 1000)展开后是[1,2,3,100,1000],排序后顺序不变,一共5个元素,正中间的是第3个元素——也就是3,所以函数返回3。
术语“robust”的含义
在统计和数据分析领域,“robust”(稳健性)指的是统计量不受极端值(outliers)干扰的能力。
用你的例子就能直观理解:
- 中位数是稳健的:哪怕把100和1000换成更大的数,只要数据总个数还是5,中位数依然是3,极端值完全不会影响结果。
- 反观均值(mean)就不稳健:这个数据集的均值是
(1+2+3+100+1000)/5 = 221.2,极端值直接把均值拉高了一大截,无法真实反映数据的中心趋势。
简单来说,稳健的统计量能在数据存在异常值时,依然可靠地体现数据的核心特征。
内容的提问来源于stack exchange,提问作者Mohammad Vahedi
相关产品推荐
相关产品推荐

