Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 循环多个变量值_R_Function_Distribution - Fatal编程技术网

R 循环多个变量值

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

我试图运行一个模拟,从不同的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
    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)