[R] get: problem with environments

Rui Barradas ruipbarradas at sapo.pt
Sun Oct 7 13:33:16 CEST 2012


Hello,

No, I can't confirm the behavior the op sees.
I've tried it in an R terminal on ubuntu 12.04, rkward on ubuntu, and 
RGui on Windows 7. R version 2.15.1.

Here's the rkward sessionInfo.

sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
  [1] LC_CTYPE=pt_PT.UTF-8          LC_NUMERIC=C
  [3] LC_TIME=pt_PT.UTF-8           LC_COLLATE=pt_PT.UTF-8
  [5] LC_MONETARY=pt_PT.UTF-8       LC_MESSAGES=pt_PT.UTF-8
  [7] LC_PAPER=pt_PT.UTF-8          LC_NAME=pt_PT.UTF-8
  [9] LC_ADDRESS=pt_PT.UTF-8        LC_TELEPHONE=pt_PT.UTF-8
[11] LC_MEASUREMENT=pt_PT.UTF-8    LC_IDENTIFICATION=pt_PT.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods base

other attached packages:
[1] rkward_0.5.6

loaded via a namespace (and not attached):
[1] tools_2.15.1

Rui Barradas

Em 07-10-2012 10:34, R. Michael Weylandt escreveu:
> On Sun, Oct 7, 2012 at 10:16 AM, Martin Ivanov <tramni at abv.bg> wrote:
>>   Dear R users,
>>
>> I am running R-2.15.1 in Linux Slackware64-14.0. Here is my minimal working example:
>>
>> testfun <- function (x) {
>>   a <- 0;
>>   sapply(X="a", FUN=get, envir=sys.frame(which=x));
>> }
>>
>> Inside R, that is R called from within a Linux terminal, the following code works:
>> testfun(x=5)
>> print(testfun(x=6))
>> But within rkward the above code fails and the following works:
>> testfun(x=1)
>> print(testfun(x=2))
>>
>> As you can see, the number of contexts up the call stack that contain the variable "a"
>> varies depending on the implementation. If I call testfun() from within print(), I have to go
>> one context up the call stack than if I call testfun() alone by itself. This implies
>> some inherent instability of my code.
> Unlike you, I don't get testfun(x = 5) to work in a terminal emulator.
> As expected, I only get x =1 and print(... x = 2) to work and I just
> tried this with R 2.15.0 and R devel, both in Terminal and by way of
> ESS.  It could be a buglet introduced later into the 2.15 branch, but
> that seems unlikely. As expected,
>
>> testfun(5)
>   Error in sys.frame(which = x) : not that many frames on the stack
>
> Can someone else confirm the behavior you see?
>
> Cheers,
> Michael
>
> ______________________________________________
> R-help at r-project.org 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.




More information about the R-help mailing list