From: ronggui <ronggui.huang_at_gmail.com>

Date: Mon, 28 May 2007 14:01:14 +0800

Date: Mon, 28 May 2007 14:01:14 +0800

Got it. Thanks very much.

On 5/28/07, Prof Brian Ripley <ripley_at_stats.ox.ac.uk> wrote:

> How about 'traceback'? (It does not necesssarily show all the frames, but

*> it does help and the exceptions are fairly esoteric.)
**>
**> On Mon, 28 May 2007, ronggui wrote:
**>
**> > In that "the meaning of parent.frame depends on where it is
**> > evaluated", is there a nice way to figure out which frame an express
**> > is evaluated? for example, I would like to konw what does
**> > parent.frame(2) refer to.
**> >
**> >> f1 <- function(x,digits=5) lapply(x, f2)
**> >> f2 <- function(x) evalq(print(x+1,digits=digits),list(x=x),parent.frame(2))
**> >> f1(list(x1=1))
**> > Error in print.default(x + 1, digits = digits) :
**> > object "digits" not found
**> >
**> >
**> > On 5/27/07, Prof Brian Ripley <ripley_at_stats.ox.ac.uk> wrote:
**> >> The meaning of parent.frame depends on where it is evaluated. So one
**> >> should not expect it to do the same thing in two equivalent expressions
**> >> (and nor should one expect deparse to do so, for example).
**> >>
**> >> A pretty close analogy is that using a symbolic link in a file system is
**> >> equivalent to using the original file path, at least until you try '..' or
**> >> 'pwd' on the path. (In the case of 'pwd' it depends on the OS: POSIX
**> >> only requires '_an_ absolute pathname'.)
**> >>
**> >> On Sun, 27 May 2007, ronggui wrote:
**> >>
**> >> > The help page of eval says: The 'evalq' form is equivalent to
**> >> > 'eval(quote(expr), ...)'. But the following is not equivalent. Can
**> >> > anyone give me some explaination? Thanks very much.
**> >> >
**> >> >> f1 <- function(x,digits=5) lapply(x, f2)
**> >> >> f2 <- function(x)
**> >> eval(quote(print(x+1,digits=digits)),list(x=x),parent.frame(2))
**> >> >> f1(list(x1=1))
**> >> > [1] 2
**> >> > $x1
**> >> > [1] 2
**> >> >
**> >> >>
**> >> >> f1 <- function(x,digits=5) lapply(x, f2)
**> >> >> f2 <- function(x)
**> >> evalq(print(x+1,digits=digits),list(x=x),parent.frame(2))
**> >> >> f1(list(x1=1))
**> >> > Error in print.default(x + 1, digits = digits) :
**> >> > object "digits" not found
**> >>
**> >> --
**> >> Brian D. Ripley, ripley_at_stats.ox.ac.uk
**> >> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
**> >> University of Oxford, Tel: +44 1865 272861 (self)
**> >> 1 South Parks Road, +44 1865 272866 (PA)
**> >> Oxford OX1 3TG, UK Fax: +44 1865 272595
**> >>
**> >
**> >
**> >
**>
**> --
**> Brian D. Ripley, ripley_at_stats.ox.ac.uk
**> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
**> University of Oxford, Tel: +44 1865 272861 (self)
**> 1 South Parks Road, +44 1865 272866 (PA)
**> Oxford OX1 3TG, UK Fax: +44 1865 272595
**>
*

-- Ronggui Huang Department of Sociology Fudan University, Shanghai, China ______________________________________________ R-help_at_stat.math.ethz.ch 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.Received on Mon 28 May 2007 - 06:05:08 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Mon 28 May 2007 - 06:31:22 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*