R

在 bash 模式下執行時安裝缺少的 R 包

  • November 7, 2019

我經常R在 bash 模式下執行腳本。我的腳本被稱為981_conduct_regression.R. 在這個腳本中,我用

if(!require(<package>)){
 install.packages("<package>")
 library(<package>)
}

現在,當我從 bash 模式(在 Ubuntu 14.04 上)呼叫腳本時,腳本(如下所示)無法安裝軟體包:

Loading required package: gridExtra
Installing package into ‘/home/michael/R/x86_64-pc-linux-gnu-library/3.1’
(as ‘lib’ is unspecified)
Error in contrib.url(repos, type) : 
 trying to use CRAN without setting a mirror
Calls: source ... eval -> eval -> install.packages -> grep -> contrib.url
In addition: Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
 there is no package called ‘gridExtra’
Execution halted

我必須改變什麼才能讓我的想法發揮作用?

編輯:這是.sh文件:

#!/bin/bash

Rscript Code/981_conduct_regression.R

您需要指定您的 CRAN 鏡像;在 R 中以互動方式執行

chooseCRANmirror()

選擇合適的鏡子,然後

options("repos")

查看生成的 URL。您可以將其永久添加到您的配置中~/.Rprofile

local({r <- getOption("repos")
  r["CRAN"] <- "<URL from above goes here>" 
  options(repos=r)
})

根據 Stephen Kitt 的建議,這解決了問題:

~ $ cat .Rprofile 
local({r <- getOption("repos")
  r["CRAN"] <- "https://mirror.las.iastate.edu/CRAN/" 
  options(repos=r)
})

引用自:https://unix.stackexchange.com/questions/183475