I am using ESS, but every time I need to install a new package I have to use R gui. Isn't there a way to do this without leaving emacs?
-
1Why can't you use `install.packages`? – Joshua Ulrich Jul 08 '11 at 20:43
-
R process hangs when it prompts to select mirror. – user443854 Jul 08 '11 at 20:50
-
2So set a mirror in your ~/.R/ files. Or as a argument to install.packages. Seems like a PBKAC. – Dirk Eddelbuettel Jul 08 '11 at 20:53
-
1I suspect your R doesn't have tcltk. R fails to pop up a cran chooser and tries to get input from the keyboard. what does capabilities() tell you? – Spacedman Jul 08 '11 at 22:22
-
3No need to be rude about the work of others via comments ad hominen. – Gavin Simpson Jul 09 '11 at 09:29
4 Answers
From help(Startup)
:
## Example of Rprofile.site
local({
# add MASS to the default packages, set a CRAN mirror
old <- getOption("defaultPackages"); r <- getOption("repos")
r["CRAN"] <- "http://my.local.cran"
options(defaultPackages = c(old, "MASS"), repos = r)
## (for Unix terminal users) set the width from COLUMNS if set
cols <- Sys.getenv("COLUMNS")
if(nzchar(cols)) options(width = as.integer(cols))
})

- 360,940
- 56
- 644
- 725
If you don't remember the shortcut for package setup, you can go through the Handy commands main menu.
If you type ,
in the inferior R buffer as the first character (i.e. at the process marker), you trigger the handy commands menu in the minibuffer, like in the following figure:
Note how you can interactively select menu items by typing the initial characters (like with Emacs isearch). Of course you can simply use the arrows.
Select install.packages
(typing i
followed by enter
should be enough).
In the subsequent menu, you are presented with the CRAN mirror list:
Select a convenient mirror. ESS will fetch the available packages
You are then presented with the list of installable packages.
Select the one that you need and you are done.
Note that the second time you install a package in the current session you are not requested to reselect the mirror.
If you are not familiar with ESS handy commands, you might find here many other commands very ... well handy. Particularly, as regards the subject matter here, the library
command might help, because you can enjoy auto-completion, useful also when you need to load a package, but you do not remember its spelling.
You might want to use the standard R GUI dialogues from Emacs. In this case, at least in Windows, to display properly the dialogue boxes, use:
library('tcltk')
install.packages()

- 10,629
- 13
- 68
- 136
http://www.emacswiki.org/emacs/anything-R.el works well for me.

- 254
- 2
- 8
-
Thanks for the pointer about 'anything', the Emacs Wiki entry is interesting. Yet another mode to try... – Dirk Eddelbuettel Jul 11 '11 at 12:53
-
Thanks, I use anything, but did not know about anything-R. So once installed, which command should I use? I tried a few obvious choices such as "install package", but did not see anything promising. – user443854 Jul 11 '11 at 14:33
-
1@user443854 You need to define a function and then call it like:` (defun orp-R-anything () (interactive) (anything-other-buffer '( anything-c-source-R-local anything-c-source-R-help ;; anything-c-source-R-localpkg ;; anything-c-source-R-repospkg ) " *R-anything*")) ' – Otto Pichlhoefer Aug 13 '11 at 18:37
-
Hmm, that can't be the "real" answer (@Otto), as the anything-R.el file explicitly contains functionality for install.packages() – Martin Mächler Aug 19 '11 at 07:04