R 循环多个变量值
我试图运行一个模拟,从不同的n计数、均值和标准差创建两个独立的正态分布。例如,n计数从100到1000,表示从0到100,标准偏差从1到10,其中每个向量的每个元素与其他两个向量的每个其他元素组合,如:100,0,1;100, 0, 2; 100, 0, 3;...100, 1, 1; 100, 1, 2; 100, 1, 3;...999, 0, 1; 等等 我首先尝试创建三个具有这些数字的向量:R 循环多个变量值,r,function,distribution,R,Function,Distribution,我试图运行一个模拟,从不同的n计数、均值和标准差创建两个独立的正态分布。例如,n计数从100到1000,表示从0到100,标准偏差从1到10,其中每个向量的每个元素与其他两个向量的每个其他元素组合,如:100,0,1;100, 0, 2; 100, 0, 3;...100, 1, 1; 100, 1, 2; 100, 1, 3;...999, 0, 1; 等等 我首先尝试创建三个具有这些数字的向量: ncount <- 100:1000 means <- 0:100
ncount <- 100:1000
means <- 0:100
std <- 1:10
ncount您可以使用expand.grid
,它将创建ncount/means/std和Vectorize
的所有组合,这将“教”您的函数以行方式处理输入参数:
ncount <- 100:101
means <- 0:2
std <- 1:3
distr <- function(count, mean, stddev) {
distr1 <- rnorm(count, mean, stddev)
hist(distr1)
}
d <- expand.grid(ncount=ncount,means=means,std=std)
Vectorize(distr)(d$ncount,d$means,d$std)
ncount虽然@Marat Talipov的答案在很多方面都很理想,
不要忘记,您也可以对
循环使用嵌套的,如下所示:
for(ncount in 100:1000)
for(means in 0:100)
for(std in 1:10)
distr(ncount,means,std)
您想为ncount
,表示和std
的所有组合(即910010)创建随机值吗?
for(ncount in 100:1000)
for(means in 0:100)
for(std in 1:10)
distr(ncount,means,std)