例如,我有一个具有CDF的离散函数,如下所示:
cdf <- c(0.00, 0.35, 0.71, 0.92, 1.00, 1.00, 1.00, 1.00)
我可以用下面一行创建一种分位数函数…
result <- which(cdf == min(cdf[cdf > x]))
…其中x是累积概率。例如,qfunction(0.9) = 4, qfunction(0.99) = 5。
这个解决方案看起来很好(尽管不美观),直到我想处理向量。如果x = c(0.9, 0.99)函数就倒了。这似乎是人们在R中经常做的事情,但我还没有找到解决方案。R不是我的主要语言。
您可能需要findInterval()
函数。具体功能请参见?findInerval
帮助页面。比如
findInterval(c(.9, .99), cdf)+1
应该适用于您的示例数据/输入。