如何在knitr中安装包?

max*_*oku 4 markdown r knitr

直到现在,我正在使用这段代码来加载R包并编写.R文件.但我正在尝试使用knitr

rm (list=ls(all=TRUE))
kpacks <- c('ggplot2','install_github','devtools','mapdata')
new.packs <- kpacks[!(kpacks %in% installed.packages()[,"Package"])]
if(length(new.packs)) install.packages(new.packs)
lapply(kpacks, require, character.only=T)
remove(kpacks, new.packs)
options(max.print=5.5E5)
Run Code Online (Sandbox Code Playgroud)

但是现在,当我把这块代码放在Knitr文档中时,我得到了这个错误:

Error in contrib.url(repos, "source") :
  trying to use CRAN without setting a mirror calls:......
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

Ben*_*ker 5

你的问题的答案很简单,你应该设置你的repos选择:

options(repos=c(CRAN="<something sensible near you>"))
Run Code Online (Sandbox Code Playgroud)

您遇到了问题,因为最初取消设置存储库选项时R的默认行为是查询用户 - 当您以非交互方式运行代码时,它无法执行此操作.

更广泛地说,我想问你是否想在你的R代码中包含这种东西; 在某些情况下,它可能会有问题.

  • 如果用户没有网络连接怎么办?
  • 如果它们在地理上离您很远,那么您的默认存储库设置没有意义呢?
  • 如果他们不想下载和安装(可能很大的)包裹怎么办?

我的首选做法是在运行代码的说明中指定用户应该安装X,Y,Z包(并给他们示例代码安装它们,以防他们没有R经验).