R quantile() 函数 - 计算分位数
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)))
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))
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 语言实例