Don:

I defer to your judgment as to whether this was what the OP wanted,
but I think you would agree that the idiom of assign()ing to the
global workspace from within a function is almost always a bad idea in
R. Unfortunately, a better alternative, which frequently involves
building up a list structure of some sort, depends on context and, in
particular, on what further is to be done with the assigned objects,
which usually we (and sometimes the poster) don't know.

While assign() and friends certainly exist and allow script-like
programming if that is how one wishes to proceed, my understanding is
that it circumvents the functional-style programming paradigm that R
naturally supports. So I would urge those who wish to partake of the
"zen" of R to expunge get() and assign() from their R programming
vocabulary and perhaps read up a bit on functional programming, which
is really kinda cool.

Contrary opinions most definitely welcome! The stock awaits me in the
public squaRe.

Best,
Bert

On Mon, Dec 9, 2013 at 3:34 PM, MacQueen, Don <[email protected]> wrote:
> Not tested, but I think you may want this:
>
> do <- function(x,fun, ...) {
>   fun <- match.fun(fun)
>   obj.name <- deparse(substitute(x))
>   assign(obj.name,fun(x, ...))
> }
>
>
>
> -Don
>
>
>
>
> --
> Don MacQueen
>
> Lawrence Livermore National Laboratory
> 7000 East Ave., L-627
> Livermore, CA 94550
> 925-423-1062
>
>
>
>
>
> On 12/9/13 1:14 PM, "Антон Морковин" <[email protected]> wrote:
>
>>
>>   For example, I have a numeric vector named "d" (without any
>>attributes) and
>>   I want to coerce it to character vector "d". Is there any such
>>functions? I
>>   need  it  to make a function which applies other functions to objects,
>>   something like this:
>>
>>   do<-function(x,fun, ...) {
>>   fun<-match.fun(fun)
>>   assign(as.character(quote(x)),fun(x, ...))
>>   }
>>
>>   But, of course, quote(x) always return just "x", not the name of
>>object.
>>
>>   Thanks for help!
>>
>>   ______
>>
>>   цЁ ц∙ц≈ц│ц√ц┘ц▌ц┴ц┘ц█,
>>   ц║.ц║. ц╜ц▐ц▓ц▀ц▐ц≈ц┴ц▌
>>______________________________________________
>>[email protected] 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.
>
> ______________________________________________
> [email protected] 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.



-- 

Bert Gunter
Genentech Nonclinical Biostatistics

(650) 467-7374

______________________________________________
[email protected] 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.

Reply via email to