Is there a way to install R packages using emacs?
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 with开发者_StackOverflow社区out leaving emacs?
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))
})
C-c C-e i
It will take a few seconds to load all packages.
http://www.emacswiki.org/emacs/anything-R.el works well for me.
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()
精彩评论