[R] Text dependent on a variable in a R function
Duncan Murdoch
murdoch.duncan at gmail.com
Mon May 3 12:51:22 CEST 2010
Jim Lemon wrote:
> On 05/02/2010 10:00 PM, Duncan Murdoch wrote:
>
>> ...
>> I've seen this description a couple of times lately, and I think it's
>> worth pointing out that it's misleading. The deparse(substitute(x))
>> trick returns the *expression* that was passed to the argument x.
>> Sometimes that's the name of a variable, but not always, and I think
>> it's important to distinguish between names that need to be names, and
>> expressions that can consist of nothing but a name, but can also be
>> something else.
>>
>> So this function
>>
>> f <- function(x) deparse(substitute(x))
>>
>> will return "1 + 1" if you call it as f(1 + 1).
>>
>>
> I'm very glad to know of this, but when I create a toy function like this:
>
> playdep<-function(x) print(str(deparse(substitute(x))))
> testvar<-1:5
> playdep(testvar)
> chr "testvar"
> NULL
>
> which is the same as I get with a literal string, and consistent with
> the help page for "deparse".
>
> "Turn unevaluated expressions into character strings."
>
> Unless I am mistaken, deparse just returns a string, whether or not it
> is the name of a variable.
>
You aren't mistaken. It returns a character vector (usually length 1,
but it could be longer in case of a long expression) which is the
deparsed version of the expression.
Duncan Murdoch
More information about the R-help
mailing list