Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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中的for循环创建边际分位数函数的list()_R_List_Function_Quantile - Fatal编程技术网

如何通过r中的for循环创建边际分位数函数的list()

如何通过r中的for循环创建边际分位数函数的list(),r,list,function,quantile,R,List,Function,Quantile,我试图创建一个包含边际分位数函数的列表,以便在Varbound()中使用。我的问题是我需要在函数之间放置不同的平均值和sd值,因此我使用了一个For循环: distribuciones<-function(p,m,v){ qnorm(p,mean=m,sd=sqrt(v))} p<-0.99 cuantiles<-list() for(i in 1:5){ d<-distribuciones(p,as.numeric(medias[i]),as.

我试图创建一个包含边际分位数函数的列表,以便在Varbound()中使用。我的问题是我需要在函数之间放置不同的平均值和sd值,因此我使用了一个For循环:

distribuciones<-function(p,m,v){
    qnorm(p,mean=m,sd=sqrt(v))}

 p<-0.99
 cuantiles<-list()
 for(i in 1:5){
     d<-distribuciones(p,as.numeric(medias[i]),as.numeric(varianzas[i]))
     cuantiles[i]<-d}

有人知道如何通过FOR循环创建具有给定meansd的边际分位数函数列表,但将p作为变量保留吗

如果将
分发单元设计为返回函数,然后创建对该函数的调用以交付该函数的特定实例,则
p
m
v
的值将位于该特定实例化函数的环境中:

distribuciones<-function(p,m,v){ function(p,m,v){
     qnorm(p=p,mean=m,sd=sqrt(v))}}
qn <- distribuciones(.5,0,1)
distribuciones<-function(p,m,v){ function(){
     qnorm(p=p,mean=m,sd=sqrt(v))}}
qn <- distribuciones(.5,0,1)

> qn()
[1] 0
Distributiones ls(环境(qn))
[1] “m”“p”“v”
>环境(qn)$p
[1] 0.5
>环境(qn)$m
[1] 0
>环境(qn)$v
[1] 1
您还可以将其设置为创建无参数函数:

distribuciones<-function(p,m,v){ function(p,m,v){
     qnorm(p=p,mean=m,sd=sqrt(v))}}
qn <- distribuciones(.5,0,1)
distribuciones<-function(p,m,v){ function(){
     qnorm(p=p,mean=m,sd=sqrt(v))}}
qn <- distribuciones(.5,0,1)

> qn()
[1] 0

distribuciones如果将
distribuciones
设计为返回函数,然后创建对该函数的调用以交付该函数的特定实例,则
p
m
v
的值将位于该特定实例化函数的环境中:

distribuciones<-function(p,m,v){ function(p,m,v){
     qnorm(p=p,mean=m,sd=sqrt(v))}}
qn <- distribuciones(.5,0,1)
distribuciones<-function(p,m,v){ function(){
     qnorm(p=p,mean=m,sd=sqrt(v))}}
qn <- distribuciones(.5,0,1)

> qn()
[1] 0
Distributiones ls(环境(qn))
[1] “m”“p”“v”
>环境(qn)$p
[1] 0.5
>环境(qn)$m
[1] 0
>环境(qn)$v
[1] 1
您还可以将其设置为创建无参数函数:

distribuciones<-function(p,m,v){ function(p,m,v){
     qnorm(p=p,mean=m,sd=sqrt(v))}}
qn <- distribuciones(.5,0,1)
distribuciones<-function(p,m,v){ function(){
     qnorm(p=p,mean=m,sd=sqrt(v))}}
qn <- distribuciones(.5,0,1)

> qn()
[1] 0

distribuciones您的
distribuciones
函数不是为返回函数而设计的。它正在返回值。您的
distributiones
函数不是为返回函数而设计的。它正在返回值。