首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从数据中计算相应的第n个百分位数

从数据中计算相应的第n个百分位数
EN

Stack Overflow用户
提问于 2019-09-03 14:28:53
回答 1查看 36关注 0票数 1
代码语言:javascript
运行
复制
OBS = data.frame(c(0.92, 1.00, 0.96, 0.87, 0.95))

OBS
0.92
1.00
0.96
0.87
0.95

REF = matrix(1:50, nrow=5, ncol=10)

REF
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1  6  11 16 21 26 31 36 41 46
2  7  12 17 22 27 32 37 42 47
3  8  13 18 23 28 33 38 43 48
4  9  14 19 24 29 34 39 44 49
5  10 15 20 25 30 35 40 45 50

代表百分位数。我希望在REF中的每一行中搜索,并从OBS中为每一行计算相应的百分位数。例如,这意味着计算第一行参考文献的第92百分位数、第二行参考文献的第100百分位数、第三行参考文献的第96个百分位数等等。在这个简化的例子中,结果是:

代码语言:javascript
运行
复制
OUT
42.40
47.00
46.20
43.15
47.75

如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-03 14:31:46

一个选项是循环遍历matrix的行序列,获取相应的'OBS‘并使用quantile

代码语言:javascript
运行
复制
unname(sapply(seq_len(nrow(REF)), function(i) quantile(REF[i, ], OBS[[1]][i])))
#[1] 42.40 47.00 46.20 43.15 47.75

另一种选择是从rowQuantilesmatrixStats

代码语言:javascript
运行
复制
library(matrixStats)
diag(rowQuantiles(REF, probs = OBS[[1]]))
#[1] 42.40 47.00 46.20 43.15 47.75
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57773785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档