Skip to content

How to execute a funcition which name is stored in a string?

4 messages · Ning Ma, David Winsemius, Charlie Sharpsteen +1 more

#
Hi, everybody

Is there any way to execute a function, which name is stored in a string.
such as:
a <- "ls()"
foo(a) ## same as ls() itself.

Or, to execute a R command, which is stored in a string
such as:
a <- "m1 <- matrix(1:9,3,3)"
foo(a) ## same as the assignment itself
#
On Nov 1, 2009, at 11:07 PM, Ning Ma wrote:

            
Need to leave the "()" off.

 > fstr <- "sum"
 > eval(parse(text=fstr))(1:5)
[1] 15
> eval(parse(text="m1 <- matrix(1:9,3,3)"))
 > m1
      [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
#
On Sun, Nov 1, 2009 at 8:07 PM, Ning Ma <pningma at gmail.com> wrote:
One way to accomplish this by using get() to search for a function
that matches your string. You can assign the return value of get() to
a variable which may be used like the original function object:
a <- 'ls'
foo <- get( a, mode = 'function' )
foo()
[1] "a" ? ? ? ? ?"foo"



-Charlie
#
?do.call

/H

On Sun, Nov 1, 2009 at 10:58 PM, Charlie Sharpsteen
<chuck at sharpsteen.net> wrote: