I am trying to do multiple samples of a distribution with a function. The trouble I am having is that when I pass the distribution into the function all the means come out the same as it appears my distribution is not being run each time inside the for loop. Test line:
我试图用函数做一个分布的多个样本。我遇到的麻烦是,当我将分布传递给函数时,所有的方法都出现了相同的情况,因为每次在for循环中都没有运行我的分布。测试线:
test(100,100,dist = rbinom(x, 1, 0.50))
Code
test = function(N, n, dist){
means = matrix(rep(0,times=N,nrow=N,ncol=1))
x = n
for(i in 1:N){
means[i,1]<- mean(dist)
print(means[i,1])
}
}
This question is similar to Passing a function argument to other arguments which are functions themselves but I seem to be having a different type of problem.
这个问题类似于将函数参数传递给其他函数本身的参数,但我似乎遇到了不同类型的问题。
1 个解决方案
#1
0
One option would be to pass function and parameters separately. E.g.
一种选择是分别传递函数和参数。例如。
test(100, 100, dist = rbinom, list(1, 0.5))
test = function(N, n, dist, ...){
means = matrix(rep(0,times=N,nrow=N,ncol=1))
x = n
for(i in 1:N){
means[i, 1] <- mean(do.call(dist, c(x, ...)))
print(means[i, 1])
}
}
#1
0
One option would be to pass function and parameters separately. E.g.
一种选择是分别传递函数和参数。例如。
test(100, 100, dist = rbinom, list(1, 0.5))
test = function(N, n, dist, ...){
means = matrix(rep(0,times=N,nrow=N,ncol=1))
x = n
for(i in 1:N){
means[i, 1] <- mean(do.call(dist, c(x, ...)))
print(means[i, 1])
}
}