如何使概率分布成为R中函数的参数?

  • 本文关键字:函数 参数 何使 概率分布 r
  • 更新时间 :
  • 英文 :


我在R中有一个函数f,它涉及绘制许多形式的样本

sample <- rnorm(k,0,1) 

其中 k 是某个整数。我想将此函数 f 作为分布类型的参数,以便我可以快速生成表单的样本

sample <- runif(k,0,1)

或其他概率分布,例如。换句话说,我希望能够编写f(k,均匀)并生成第二种类型的采样,并为第一种类型生成f(k,normal)。

这可能吗?我想避免每次更改发行版时都必须重复修改函数中的代码。

不知道这有多大用处,但是:

f <- function(k,g){g(k)}

f(100,runif)f(100,rnorm)一样使用

作为变体:

f <- function(k,g,...){g(k,...)}

这也将允许像f(100,rnorm,10,2)这样的事情

这是您正在寻找的内容的一个有前途的、正在开发的实现。distributions包可在Github和CRAN上使用。

下面是一个用法示例:

library(distributions)
X <- Bernoulli(0.1)
random(X, 10)
#>  [1] 0 0 0 0 0 0 0 0 1 0
pdf(X, 1)
#> [1] 0.1
cdf(X, 0)
#> [1] 0.9
quantile(X, 0.5)
#> [1] 0

最新更新