[R] using tcltk in R under ESS/XEmacs on Windows

Marc Schwartz MSchwartz at MedAnalytics.com
Fri Sep 24 22:32:03 CEST 2004


On Fri, 2004-09-24 at 15:02, Liaw, Andy wrote:
> Sorry for the cross-post.  Not sure where the problem is...
> 
> A while back I posted an R function to R-help:
> 
> cd <- function (dir = tclvalue(tkchooseDirectory()), saveOld = FALSE, 
>     loadNew = TRUE) {
>     stopifnot(require(tcltk))
>     if (saveOld) 
>         save.image(compress = TRUE)
>     setwd(dir)
>     rm(list = ls(all = TRUE, envir = .GlobalEnv), envir = .GlobalEnv)
>     if (loadNew && file.exists(".RData")) {
>         loaded <- load(".RData", envir = .GlobalEnv)
>         return(invisible(loaded))
>     }
> 
> where the default value for the `dir' argument is to run the tcltk directory
> chooser and get the directory name chosen.  (Thanks to Prof. John Fox for
> the tcltk part!!)  While this function works fine under Rgui on Windows, it
> doesn't work when running R within ESS (5.2.3) and XEmacs (21.4.13).  The
> directory chooser never shows up, and dir just gets the empty string.  Does
> anyone have any idea what could be the problem?  I'd very much appreciate
> any pointers.
> 
> Best,
> Andy

Andy,

This works under FC2 using ESS 5.2.3 with XEmacs version 21.4.15, so
presumably there is something specific to the Windows implementation?

Also, two things:

1. You are missing a closing brace above, which I presume may be a
simple copy and paste issue.

2. If you successfully change the directory, the cd() function itself is
deleted from the global environment via your rm(...), as you currently
have it implemented. I am not sure if this is intentional or not.

HTH,

Marc




More information about the ESS-help mailing list