[R] from character string to function body?

2007-07-07 Thread Atte Tenkanen
Dear R users,

I wonder if it is possible to form a function from a character string. Here is 
an example:


 x=3
 `-`(`+`(`^`(x,3),`^`(x,2)),1) # Here is my function evaluated.
[1] 35

 V=list(`-`,(,`+`,(,`^`,(,x,,,3,),,,`^`,(,x,,,2,),),,,1,))
  # Here I construct the string, it could be vector as well?
 
 S=noquote(paste(V,collapse=))
 
 S
[1] `-`(`+`(`^`(x,3),`^`(x,2)),1) # Here is the same as a character string.

Now I'd like to create a function using this string, something like this, but 
of course, this doesn't work:

S=as.expression(S)

F1-function(x){S}

Is there some way to do this?

Cheers,

Atte Tenkanen
University of Turku, Finland

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] from character string to function body?

2007-07-07 Thread Sundar Dorai-Raj


Atte Tenkanen said the following on 7/7/2007 8:41 AM:
 Dear R users,
 
 I wonder if it is possible to form a function from a character string. Here 
 is an example:
 
 
 x=3
 `-`(`+`(`^`(x,3),`^`(x,2)),1) # Here is my function evaluated.
 [1] 35
 
 V=list(`-`,(,`+`,(,`^`,(,x,,,3,),,,`^`,(,x,,,2,),),,,1,))
  # Here I construct the string, it could be vector as well?

 S=noquote(paste(V,collapse=))

 S
 [1] `-`(`+`(`^`(x,3),`^`(x,2)),1) # Here is the same as a character string.
 
 Now I'd like to create a function using this string, something like this, but 
 of course, this doesn't work:
 
 S=as.expression(S)
 
 F1-function(x){S}
 
 Is there some way to do this?
 
 Cheers,
 
 Atte Tenkanen
 University of Turku, Finland
 
 __
 R-help@stat.math.ethz.ch mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
 and provide commented, minimal, self-contained, reproducible code.

How about:

V - 
list(`-`,(,`+`,(,`^`,(,x,,,3,),,,`^`,(,x,,,2,),),,,1,))
 
# Here I construct the string, it could be vector as well?
S - paste(V, collapse = )

F1 - function(x) {}
body(F1) - parse(text = S)
F1(3)
# [1] 35
F1(2)
# [1] 11

HTH,

--sundar

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] from character string to function body?

2007-07-07 Thread Atte Tenkanen
Thanks Sundar!

I wonder that - when evaluating F1 - the right mathematical formula is now also 
printed!

 F1
function (x) 
x^3 + x^2 - 1

Atte

 
 
 Atte Tenkanen said the following on 7/7/2007 8:41 AM:
  Dear R users,
  
  I wonder if it is possible to form a function from a character 
 string. Here is an example:
  
  
  x=3
  `-`(`+`(`^`(x,3),`^`(x,2)),1) # Here is my function evaluated.
  [1] 35
  
  V=list(`-
 `,(,`+`,(,`^`,(,x,,,3,),,,`^`,(,x,,,2,),),,,1,))
  # Here I construct the string, it could be vector as well?
 
  S=noquote(paste(V,collapse=))
 
  S
  [1] `-`(`+`(`^`(x,3),`^`(x,2)),1) # Here is the same as a 
 character string.
  
  Now I'd like to create a function using this string, something 
 like this, but of course, this doesn't work:
  
  S=as.expression(S)
  
  F1-function(x){S}
  
  Is there some way to do this?
  
  Cheers,
  
  Atte Tenkanen
  University of Turku, Finland
  
  __
  R-help@stat.math.ethz.ch mailing list
  https://stat.ethz.ch/mailman/listinfo/r-help
  PLEASE do read the posting guide http://www.R-project.org/posting-
 guide.html and provide commented, minimal, self-contained, 
 reproducible code.
 
 How about:
 
 V - 
 list(`-
 `,(,`+`,(,`^`,(,x,,,3,),,,`^`,(,x,,,2,),),,,1,))
  
 # Here I construct the string, it could be vector as well?
 S - paste(V, collapse = )
 
 F1 - function(x) {}
 body(F1) - parse(text = S)
 F1(3)
 # [1] 35
 F1(2)
 # [1] 11
 
 HTH,
 
 --sundar
 


__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.