R使用kwargs从多个分布中生成随机数据 问题:
我想从几个分布中生成随机样本,例如,R使用kwargs从多个分布中生成随机数据 问题:,r,random,parameters,R,Random,Parameters,我想从几个分布中生成随机样本,例如,norm,poi等。但是,我想为rdist函数指定参数,比如将参数传递给函数调用 尝试: 我试着用pythonpartial或**kwargs dist = 'rnorm' # dist n = 100 # sample size para1 = c(0,1) # parameters mean(get(dist)(n,para1)) # it fails para2 = c(mean = 0, sd = 1)# parameters mean(get(di
norm
,poi
等。但是,我想为rdist
函数指定参数,比如将参数传递给函数调用
尝试:
我试着用pythonpartial
或**kwargs
dist = 'rnorm' # dist
n = 100 # sample size
para1 = c(0,1) # parameters
mean(get(dist)(n,para1)) # it fails
para2 = c(mean = 0, sd = 1)# parameters
mean(get(dist)(n,para2)) # it fails
输出:
正如我们从输出中看到的,
rnorm
没有从norm(平均值=0,sd=1)
生成样本,因为样本平均值约为0.5。输出随机数是从rnorm(1,mean=0,sd=1)
和rnorm(1,mean=1,sd=1)
逐个生成的。您可以使用do.call
将函数作为字符名调用,并在列表中传递函数参数(另请参见do.call
):
##标准标准样品
(X[1]1.4127136-0.4113396 1.7546034 0.6741983-1.3499156-0.8033819
#> [7] -1.6393473 -0.7667389 0.7157213 -1.1061452
平均值(X)
#> [1] -0.1519632
“rnorm没有从norm(mean=0,sd=1)生成样本”它没有?你怎么知道?输出显示它生成了样本平均值在0.5左右的样本。实际上,它生成了一个样本,样本的rnorm(n=1,mean=0,sd=1),rnorm(n=1,mean=1,sd=1)
,rnorm(n=1,mean=0,sd=1)
等等。所以样本的期望平均值是0.5@Hongooi我也要弄清楚,我总是被get
,eval
,“parse”和“do.call”T-T弄糊涂
[1] 0.6318898
[2] 0.4246129