[R] set argument of a function by string variable

Duke duke.lists at gmx.com
Fri Feb 25 23:20:39 CET 2011


On 2/24/11 1:21 PM, David Winsemius wrote:
>
> On Feb 24, 2011, at 1:03 PM, Duke wrote:
>
>> Hi folks,
>>
>> I am wondering if the following is possible: I want to control the 
>> arguments sent to a function by string variables. For example, 
>> instead of
>> > heatmap.2( A, col=greenred(75) )
>> I would want to have something like:
>> > heatmap.2 ( paste(A, "col=greenred(75)", sep=",") )
>>
>> Is this possible to do that?
>
> It is possible (to do various things), but that would fail. You would 
> need to pass a character argument to parse() and then eval() but  
> probably not in the argument list. And there are possibly much cleaner 
> ways of doing what you want to achieve. Can you describe "what you 
> want to achieve" in more detail? An example that presents R objects is 
> the accepted manner for posing such questions.

What I want to do is to control the options sent to heatmap function 
based on the argument input, and I dont want to have a lot of heatmap.2 
commands such as

if () heatmap.2(...)
else if () heatmap.2(...)
else if () heatmap.2(...)
...

If I can control the *string* argument, then I can simply reducing the 
above commands to a much shorter and nicer code. Solution given by Peter 
and you using parse() and eval() was exactly what I asked for.

Thanks so much to both of you :).

D.



More information about the R-help mailing list