Hello R, I would like to find out how to generate array full of functions. I tried it like this: fv=array(,dim=c(1,10)) V=c(1:10) for (i in 1:10){ fv[i]<-function(x)(V[i]-b*a*x) # b, x are constants. } But it returns: "incompatible types (from closure to logical) in subassignment type fix" -- View this message in context: http://r.789695.n4.nabble.com/filling-array-with-functions-tp3468313p3468313.html Sent from the R help mailing list archive at Nabble.com.
On Fri, 2011-04-22 at 10:02 -0700, derek wrote:> Hello R, > > I would like to find out how to generate array full of functions. I tried it > like this: > > fv=array(,dim=c(1,10)) > V=c(1:10) > for (i in 1:10){ > fv[i]<-function(x)(V[i]-b*a*x) # b, x are constants. > } > > But it returns: > "incompatible types (from closure to logical) in subassignment type fix" >You could parse individual expressions. fv=array(,dim=c(1,10)) V=c(1:10) for (i in 1:10){ fv[i]<-parse(text=paste("function(x)(V[", i, "]-b*a*x)", sep="")) } a=1;b=1 eval(fv[3])(7) Hope this helps.
Thats not exactly what I hoped for. But for now it has to suffice. More transparent syntax would be nicer. Exactly what I would like to do is: for (i in 1:9){ f[i]<-function(x){ a*x+b) } curve(f[i], 0, 8) sol[i]<-uniroot(f[i],c(0, 8))$root points(sol[i],0,pch=16,cex=1,col="red") } Perhaps is item for a wish list? -- View this message in context: http://r.789695.n4.nabble.com/filling-array-with-functions-tp3468313p3471463.html Sent from the R help mailing list archive at Nabble.com.