【问题标题】:Is there a way to install R packages using emacs?有没有办法使用 emacs 安装 R 包?
【发布时间】:2011-10-01 14:17:42
【问题描述】:

我正在使用 ESS,但每次我需要安装新包时,我都必须使用 R gui。难道不离开emacs就没有办法做到这一点吗?

【问题讨论】:

  • 为什么不能使用install.packages
  • R 进程在提示选择镜像时挂起。
  • 所以在你的 ~/.R/ 文件中设置一个镜像。或者作为 install.packages 的参数。看起来像一个 PBKAC。
  • 我怀疑你的 R 没有 tcltk。 R 无法弹出 cran 选择器并尝试从键盘获取输入。能力()告诉你什么?
  • 无需通过 cmets ad hominen 对他人的工作无礼。

标签: r emacs installation package ess


【解决方案1】:

来自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))
 })

【讨论】:

    【解决方案2】:

    【讨论】:

    • 感谢有关“任何东西”的指针,Emacs Wiki 条目很有趣。还有一种模式可以尝试……
    • 谢谢,我用过任何东西,但不知道任何东西-R。所以一旦安装,我应该使用哪个命令?我尝试了一些明显的选择,例如“安装包”,但没有看到任何希望。
    • @user443854 你需要定义一个函数,然后像这样调用它:` (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),因为anything-R.el 文件明确包含 install.packages() 的功能
    【解决方案3】:

    C-c C-e i

    加载所有包需要几秒钟。

    【讨论】:

      【解决方案4】:

      如果您不记得安装包的快捷方式,您可以通过Handy commands 主菜单。

      如果您在下级 R 缓冲区中键入 , 作为第一个字符(即在进程标记处),则会触发迷你缓冲区中的便捷命令菜单,如下图所示:

      请注意如何通过键入初始字符来交互地选择菜单项(例如使用 Emacs isearch)。当然你可以简单地使用箭头。

      选择install.packages(键入i 后跟enter 就足够了)。

      在随后的菜单中,您会看到 CRAN 镜像列表:

      选择一个方便的镜子。 ESS 将获取可用的包

      然后您会看到可安装软件包的列表。

      选择你需要的,你就完成了。

      请注意,在当前会话中第二次安装软件包时,不会要求您重新选择镜像。

      如果您不熟悉 ESS 便捷命令,您可能会在这里发现许多其他命令非常...非常方便。特别是对于这里的主题,library 命令可能会有所帮助,因为您可以享受自动完成,当您需要加载一个包但您不记得它的拼写时也很有用。

      您可能希望使用 Emacs 中的标准 R GUI 对话框。 在这种情况下,至少在 Windows 中,要正确显示对话框,请使用:

      library('tcltk')
      install.packages()
      

      【讨论】: