[英]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.