给定 R 中可以处理的离散 CDF,创建一个分位数函数

Create a quantile function given a discrete CDF in R that can handle

因此,例如,我有一个带有 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

应该适用于您的示例 data/input。