现在位置: 首页 > R 教程 > 正文

R quantile() 函数 - 计算分位数

R 语言实例 R 语言实例

R quantile() 函数用于计算数据的分位数。

分位数是将数据排序后按比例划分的点。例如中位数就是 50% 分位数。

quantile() 函数语法格式如下:

quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE)

参数说明:

  • x 输入数值向量。

  • probs 分位点概率值,取值范围 0 到 1。默认返回四分位数(0, 0.25, 0.5, 0.75, 1)。

  • na.rm 布尔值,设置是否删除缺失值 NA。

实例

# 创建考试分数
scores <- c(55, 62, 68, 70, 72, 75, 78, 80, 82, 85,
            88, 90, 92, 95, 98)

# 默认四分位数
print("四分位数:")
print(quantile(scores))

# 自定义分位点
print("自定义分位点 (10%, 50%, 90%):")
print(quantile(scores, probs = c(0.1, 0.5, 0.9)))

执行以上代码输出结果为:

[1] "四分位数:"
   0%   25%   50%   75%  100%
55.00 71.00 80.00 88.75 98.00
[1] "自定义分位点 (10%, 50%, 90%):"
 10%  50%  90%
63.2 80.0 94.4

quantile() 常用于识别数据的分布特征和检测异常值:

实例

# 使用 IQR 方法检测异常值
scores <- c(55, 62, 68, 70, 72, 75, 78, 80, 82, 85, 120)

# 计算 Q1, Q3 和 IQR
Q1 <- quantile(scores, 0.25)
Q3 <- quantile(scores, 0.75)
IQR <- Q3 - Q1

# 异常值边界
lower_bound <- Q1 - 1.5 * IQR
upper_bound <- Q3 + 1.5 * IQR
print(paste("正常范围:", round(lower_bound, 1), "到", round(upper_bound, 1)))

# 找出异常值
outliers <- scores[scores < lower_bound | scores > upper_bound]
print(paste("异常值:", outliers))

执行以上代码输出结果为:

[1] "正常范围: 44.3 到 119.3"
[1] "异常值: 120"

R 语言实例 R 语言实例