直到现在,我正在使用这段代码来加载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)
我怎样才能解决这个问题?
你的问题的答案很简单,你应该设置你的repos选择:
options(repos=c(CRAN="<something sensible near you>"))
Run Code Online (Sandbox Code Playgroud)
您遇到了问题,因为最初取消设置存储库选项时R的默认行为是查询用户 - 当您以非交互方式运行代码时,它无法执行此操作.
更广泛地说,我想问你是否想在你的R代码中包含这种东西; 在某些情况下,它可能会有问题.
我的首选做法是在运行代码的说明中指定用户应该安装X,Y,Z包(并给他们示例代码安装它们,以防他们没有R经验).