在R编程学习中遇到的一些问题记录
本篇内容:
安装R包-参数
当使用install.packages()安装R包时,repos参数指定了R应该从哪些仓库位置去查找和下载包。
默认情况下,repos会指向一些默认的CRAN镜像站点。但是有些包不在CRAN上,比如cmdstanr,它存放在一个自定义的仓库"https://mc-stan.org/r-packages/"。
为了能安装这样的非CRAN包,需要将自定义仓库地址添加到repos参数中,比如:1
2install.packages("cmdstanr",
repos = c("https://mc-stan.org/r-packages/", getOption("repos")))
这个repos设置了两个仓库:
- "https://mc-stan.org/r-packages/":cmdstanr包的仓库
- getOption(“repos”):默认的CRAN镜像站点
这样R就会先在cmdstanr的仓库地址查找该包,如果不存在再去CRAN镜像里查找依赖包。
所以通过这个方式,我们既可以下载需要的非CRAN包,也可以利用CRAN获取其他依赖包。
从github仓库中直接构建R包
有的时候我们需要fork修改r包的一些逻辑。
如果是在如kaggle的jupter r内核中安装,无法直接使用bash指令。
因为 Jupyter R kernel 实际上是在 R 会话中运行的,它只能执行 R 代码,无法直接调用系统命令和程序。
但是,可以通过 R 的 system()
函数来执行系统级命令。1
2
3
4
5
6
7
8
9#在Jupyter R kernel中克隆
repo_url <- "{REPO_URL}"
system(paste("git clone", repo_url))
# 使用devtools安装本地R包
install.packages("devtools")
my_cloned_library_build = devtools::build("~/put/the/package/path/here")
devtools::install_local(my_cloned_library_build)
library(my_cloned_library)
或者使用pak/remote安装,更方便1
2install.packages("pak")
pak::pkg_install("用户/仓库@分支")
在Linux中配置R环境
1 | sudo apt-get update |
还可以在在Linux的Jupyter Notebook中安装R内核
这里我死活安装不上devtools包,但是用pak十分可以
调取脚本时传参
1 | #调取的脚本中 |
SF包
R的文档真是不够友好……记录一下大佬们总结的教程
https://blog.51cto.com/u_16213391/7651424