Is there a way to install R packages using emacs?

2019-03-28 12:39发布

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?

4条回答
祖国的老花朵
2楼-- · 2019-03-28 12:48

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:

install-pack

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 should followed by enter should be enough).

In the subsequent menu, you are presented with the CRAN mirror list:

CRAN mirror list

Select a convenient mirror. ESS will fetch the available packages

Fetch the available packages

You are then presented with the list of installable packages.

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()
查看更多
beautiful°
3楼-- · 2019-03-28 13:05
冷血范
4楼-- · 2019-03-28 13:06

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))
 })
查看更多
成全新的幸福
5楼-- · 2019-03-28 13:09

C-c C-e i

It will take a few seconds to load all packages.

查看更多
登录 后发表回答