簡體   English   中英

如何使概率分布成為R中函數的參數?

[英]How to make probability distribution an argument of a function in R?

我在 R 中有一個函數 f,它涉及繪制許多形式的樣本

sample <- rnorm(k,0,1) 

其中 k 是某個整數。 我想將分布類型作為此函數的參數,以便我可以快速生成以下形式的樣本

sample <- runif(k,0,1)

或其他概率分布,例如。 換句話說,我希望能夠編寫 f(k,uniform) 並生成第二種采樣,而 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM