HI, sorry but i don't understand how to make a function with as.function() formula<-"2+3*x" formu<-as.symbol(formula)> formu2+3*x formul<-as.function(alist(x=,formu)) curve(formul,1,5,col="blue") Error in xy.coords(x, y, xlabel, ylabel, log) : x and y lengths differ> typeof(formul)[1] "closure" and not plot the curve function, Why? Thanks Ruben
solares at unsl.edu.ar wrote:> HI, sorry but i don't understand how to make a function with as.function() > > formula<-"2+3*x" > formu<-as.symbol(formula) > >>formu > > 2+3*x > formul<-as.function(alist(x=,formu)) > curve(formul,1,5,col="blue") > Error in xy.coords(x, y, xlabel, ylabel, log) : > x and y lengths differ > >>typeof(formul) > > [1] "closure" > > and not plot the curve function, Why? Thanks Ruben >Hi Ruben, How about this? ftext <- "2 + 3 * x" f <- as.function(alist(x=, eval(parse(text = ftext)))) or as a one-liner: f <- as.function(alist(x=, eval(parse(text = "2 + 3 * x")))) --sundar
<solares <at> unsl.edu.ar> writes:> > HI, sorry but i don't understand how to make a function with as.function() > > formula<-"2+3*x" > formu<-as.symbol(formula) > > formu > 2+3*x > formul<-as.function(alist(x=,formu)) > curve(formul,1,5,col="blue") > Error in xy.coords(x, y, xlabel, ylabel, log) : > x and y lengths differ > > typeof(formul) > [1] "closure" > > and not plot the curve function, Why? Thanks RubenHere are two ways to create a function out of strings although neither uses as.function: f <- function(x){} body(f) <- parse(text="2+3*x") f <- eval(parse(text=paste("function(x)","2+3*x")))