Skip to content

name of the variable that will contain the result of a function

3 messages · Benilton Carvalho, Thomas Lumley, Gabor Grothendieck

#
Hi everyone,

say I have a function called 'foo', which takes the argument arg1.

Is there any mechanism that I can use to "learn" about the variable  
where foo(arg1) is going to be stored?

For example:

x <- foo(arg1)

so, inside foo() I'd like to be able to get the string "x".

if,

foo(arg1)

was used insted, I'd like to get NA.

thank you very much,

b






--
Benilton Carvalho
PhD Candidate
Department of Biostatistics
Bloomberg School of Public Health
Johns Hopkins University
bcarvalh at jhsph.edu
#
On Wed, 6 Jun 2007, Benilton Carvalho wrote:

            
No. This information isn't available explicitly even at the C level.
It could be much worse that this, for example,
    x[[7]][y][[4]] <- foo(arg1)
    w <- foo(arg2)+1
    names(x)[foo(arg3)] <- foo(arg4)

 	-thomas
#
Don't think you can do that but you could respecify your function
so that the assigned variable must appear as the first argument:

foo <- function(y, arg) {
	y <- substitute(y)
	if (is.name(y)) assign(deparse(y), arg+1, parent.frame())
	else cat("not assigned\n")
	invisible()
}

if (exists("zz")) rm(zz)
foo(zz, 3)
zz
foo(zz, 4)
zz

xx <- foo(zz, 99)
xx
zz
foo(0, 99)
foo(x+1, 99)
On 6/6/07, Benilton Carvalho <bcarvalh at jhsph.edu> wrote: