Thank you, that made me laugh :) On Sun, Dec 11, 2016 at 08:53:42PM -0800, David Winsemius wrote: > > > On Dec 11, 2016, at 5:35 PM, [email protected] wrote: > > > > Dear R-Help, > > > > I was going to ask Jeff to read the entire works of William > > Shakespeare to learn why his reply was not helpful to me... > > From a typical US 10th grade English assignment: > > Cassius: > "The fault, dear Brutus, is not in our stars, > But in ourselves, that we are underlings." > > -- > David. > > > > Then I realized that the answer, as always, lies within... > > > > desub <- function(y) { > > e1=substitute(y, environment()) > > e2=do.call(substitute,list(e1), env=parent.frame()) > > deparse(e2) > > } > > > > Sorry to trouble the list; other solutions still welcome. > > > > Cheers, > > > > Frederick > > > > On Sun, Dec 11, 2016 at 12:46:23AM -0800, Jeff Newmiller wrote: > >> No. Read Hadley Wickham's "Advanced R" to learn why not. > >> -- > >> Sent from my phone. Please excuse my brevity. > >> > >> On December 10, 2016 10:24:49 PM PST, [email protected] wrote: > >>> Dear R-Help, > >>> > >>> I asked this question on StackOverflow, > >>> > >>> http://stackoverflow.com/questions/41083293/in-r-how-do-i-define-a-function-which-is-equivalent-to-deparsesubstitutex > >>> > >>> but thought perhaps R-help would be more appropriate. > >>> > >>> I want to write a function in R which grabs the name of a variable > >>> from the context of its caller's caller. I think the problem I have is > >>> best understood by asking how to compose `deparse` and `substitute`. > >>> You can see that a naive composition does not work: > >>> > >>> # a compose operator > >>>> `%c%` = function(x,y)function(...)x(y(...)) > >>> > >>> # a naive attempt to combine deparse and substitute > >>>> desub = deparse %c% substitute > >>>> f=function(foo) { message(desub(foo)) } > >>>> f(log) > >>> foo > >>> > >>> # this is how it is supposed to work > >>>> g=function(foo) { message(deparse(substitute(foo))) } > >>>> g(log) > >>> log > >>> > >>> Is there a way I can define a function `desub` so that `desub(x)` has > >>> the same value as `deparse(substitute(x))` in every context? > >>> > >>> Thank you, > >>> > >>> Frederick Eaton > >>> > >>> ______________________________________________ > >>> [email protected] mailing list -- To UNSUBSCRIBE and more, see > >>> 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 -- To UNSUBSCRIBE and more, see > > 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. > > David Winsemius > Alameda, CA, USA >
______________________________________________ [email protected] mailing list -- To UNSUBSCRIBE and more, see 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.

