[Rd] Scoping issues
John Fox
jfox at mcmaster.ca
Sun Jan 7 14:57:27 CET 2007
Dear Chris,
If I correctly understand what you want to do, the Rcmdr package uses the
following functions (slightly modified from original version contributed by
Philippe Grosjean) to solve a similar problem:
RcmdrEnv <- function() {
pos <- match("RcmdrEnv", search())
if (is.na(pos)) { # Must create it
RcmdrEnv <- list()
attach(RcmdrEnv, pos = length(search()) - 1)
rm(RcmdrEnv)
pos <- match("RcmdrEnv", search())
}
return(pos.to.env(pos))
}
putRcmdr <- function(x, value)
assign(x, value, envir = RcmdrEnv())
getRcmdr <- function(x, mode="any")
get(x, envir = RcmdrEnv(), mode = mode, inherits = FALSE)
I hope this helps,
John
--------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario
Canada L8S 4M4
905-525-9140x23604
http://socserv.mcmaster.ca/jfox
--------------------------------
> -----Original Message-----
> From: r-devel-bounces at r-project.org
> [mailto:r-devel-bounces at r-project.org] On Behalf Of Chris Eisley
> Sent: Sunday, January 07, 2007 12:29 AM
> To: r-devel at r-project.org
> Subject: [Rd] Scoping issues
>
> Hi everyone,
>
> I'm trying to split up a large R file that implements a
> tcl/tk gui into several smaller ones. The problem is that
> the main GUI creation function defines many tclVars and
> tkframes that need to be accessible to functions that are
> currently defined in main function, but which I'd like to
> move to different source files. These files make up a
> package, so it seems that using source() is a bad idea. I
> could try argument passing, but there are a lot of arguments
> to pass in some cases.
>
> The lexical scoping is hurting me here, but I assume there's
> a good way to deal with this kind of issue. Any help is
> greatly appreciated.
>
> -Chris
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list