如何安装旧版本的 R 包
由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接。
我们在安装 R 包的时候,经常会发现某个最新的包与当前 R 的版本不兼容。
> install.packages("effects")
Warning message:
package ‘effects’ is not available (for R version 3.4.3)
或者,如果我们要将应用程序部署到 shinyapps.io,Shiny Server 或 RStudio Connect 等,这些环境可能不允许我们运行最新版本的 R 包的位置时,我们需要使用旧版本的 R 包。
要知道目前 R 包的版本,可以使用命令 packageVersion("package name")
或者 sessionInfo()
。注意,sessionInfo()
这个命令是当前状态 load 的 R 包显示其版本。
> packageVersion("ggplot2")
[1] ‘3.0.0’
在没有使用对应 R 包的状态下使用命令 sessionInfo(),不会显示该 R 包信息:
> sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)
Matrix products: default
BLAS/LAPACK: /usr/local/software/anaconda3/lib/R/lib/libRblas.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.3
>
在使用对应R包的状态下使用命令 sessionInfo(),会显示该 R 包及其关联 R 包的版本状态:
> library(ggplot2)
> sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)
Matrix products: default
BLAS/LAPACK: /usr/local/software/anaconda3/lib/R/lib/libRblas.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_3.0.0
loaded via a namespace (and not attached):
[1] Rcpp_0.12.19 withr_2.1.2 crayon_1.3.4 dplyr_0.7.4
[5] assertthat_0.2.0 grid_3.4.3 plyr_1.8.4 R6_2.3.0
[9] gtable_0.2.0 magrittr_1.5 scales_1.0.0 pillar_1.3.0
[13] rlang_0.3.0 lazyeval_0.2.1 bindrcpp_0.2 glue_1.3.0
[17] munsell_0.5.0 compiler_3.4.3 pkgconfig_2.0.1 colorspace_1.3-2
[21] bindr_0.1 tibble_1.4.2
>
现在,我们开始今天的重点,介绍一下安装旧版本 R 包的几种方法。
最简单的方法就是使用 devtools 包提供的 install_version() 函数来安装所需的版本。
# 没有 devtools 的话,先要安装
> install.packages("devtools")
> require(devtools)
> install_version("effects", version = "4.0-0", repo="http://mirrors.tuna.tsinghua.edu.cn/CRAN/")
Downloading package from url: http://mirrors.tuna.tsinghua.edu.cn/CRAN//src/contrib/Archive/effects/effects_4.0-0.tar.gz
* installing *source* package ‘effects’ ...
** package ‘effects’ successfully unpacked and MD5 sums checked
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (effects)
详细的 CRAN repo 镜像列表参考:https://cran.r-project.org/。中国地区的镜像:
如果我们知道需要安装的软件包版本的 URL,则可以通过 install.packages()
从指向该 URL 的源码进行安装。 如果您不知道 URL,可以在 CRAN Package Archive 中查找。
如果我们使用的是 Windows 或 OS X 并且正在寻找旧版 R(R 2.1 或更低版本)的软件包,则可以在 CRAN binary archive 中查找。
一旦我们获取到了 URL 后,就可以使用以下示例的命令安装:
> packageurl <- "https://cran.r-project.org/src/contrib/Archive/effects/effects_4.0-0.tar.gz"
> install.packages(packageurl, repos=NULL, type="source")
如果我们知道了 URL,也可以通过 R 之外的命令行从源码安装。例如:
$ wget https://cran.r-project.org/src/contrib/Archive/effects/effects_4.0-0.tar.gz
$ R CMD INSTALL effects_4.0-0.tar.gz
请注意,如果从源码安装,则需要确保拥有从源代码构建软件包所需的工具链。 在 Windows 上,这可能需要我们安装 Rtools。
安装旧版本的软件包时可能会出现一些潜在问题:
我们可能会丢失仅在较新版本的软件包中出现的功能或 bug 修复。
所需的旧软件包版本可能与我们安装的 R 版本仍然不兼容(有些历史版本的 R 包已经不再更新,这些包只适用于低版本的 R)。 在这种情况下,我们需要将 R 降级到兼容版本或更新 R 代码以使用其他的替代软件包。
·end·
—如果喜欢,快分享给你的朋友们吧—
我们一起愉快的玩耍吧
本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了