在R语言中使用quantile()函数查找指定值26对应的分位数
R语言查找指定数值对应分位数的实现方法
你当前的代码逻辑是反向的:quantile()函数的作用是给定分位概率,返回对应的样本数值,你写的sample_quantiles[26]实际是取了第26个分位概率(也就是0.26分位)对应的ACT分数,和你要的「找26分对应的分位概率」需求完全相反。
方案1:使用经验累积分布函数获取精确结果
R内置的ecdf()函数会返回样本的经验累积分布函数,直接传入目标数值即可得到对应的分位比例:
# 直接计算act_scores中<=26的样本占比,即26对应的分位数 quantile_26 <- ecdf(act_scores)(26)
这个结果是精确的,不受你之前设置的1%分位步长限制。
方案2:基于你已生成的sample_quantiles获取近似结果
如果你要沿用之前生成的1%间隔的分位序列,可以通过匹配数值位置取对应的概率:
# 找到第一个大于等于26的分位数值对应的概率 p[which(sample_quantiles >= 26)[1]]
这个结果是1%精度的近似值,适合你需要和现有分位序列对齐的场景。
内容的提问来源于stack exchange,提问作者andddrre
相关产品推荐
相关产品推荐

