我在与协作者共享R代码时遇到了困难,我想知道如何解决这个问题。我的代码将为我正常运行,但不会为我的协作者运行,反之亦然。我保持R / Rstudio和我的包最新。
我的合作者在他们的电脑上使用R,而我在我的Mac上使用Rstudio。 R / Rstudio之间是否存在任何已知的不兼容性或在Mac和PC之间共享R代码?
我的一个假设是,这可能是由旧版本的软件包引起的。我知道我的合作者让R保持最新状态,但我不确定他们如何管理他们的包裹。
例如我使用tidyverse进行数据操作,看起来这对他们来说尤其是个问题。
成功分享代码的最佳方法是什么?有人最近建议不要使用“库”来加载我可能会使用“require”修复我的问题的包。
答案 0 :(得分:2)
为确保两台计算机在相同版本级别具有相同的软件包,可以使用Chris Eberwein发布到Data Science Riot的文章How to Upgrade R Without Losing Your Packages中描述的过程。我正在重新发布非Bioconductor步骤,以便人们可以在SO上看到这里的步骤。
首先,将当前安装的软件包列表保存到.rda
文件。
tmp <- installed.packages()
installedpkgs <- as.vector(tmp[is.na(tmp[,"Priority"]), 1])
save(installedpkgs, file="installed_old.rda")
其次,安装最新版本的R.
第三,重新加载旧包并更新。
tmp <- installed.packages()
installedpkgs.new <- as.vector(tmp[is.na(tmp[,"Priority"]), 1])
missing <- setdiff(installedpkgs, installedpkgs.new)
install.packages(missing)
update.packages()
要重新安装Bioconductor软件包,请阅读上面链接的URL上的文章。
确认在多台计算机上安装所有软件包的相同版本的一种方法是使用sessionInfo()
函数并比较每台计算机的输出。
> library(tidyverse)
── Attaching packages ────────────────────────────────────────────── tidyverse 1.2.1 ──
✔ ggplot2 2.2.1 ✔ purrr 0.2.4
✔ tibble 1.3.4 ✔ dplyr 0.7.4
✔ tidyr 0.7.2 ✔ stringr 1.2.0
✔ readr 1.1.1 ✔ forcats 0.2.0
── Conflicts ───────────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
> sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.1
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] forcats_0.2.0 stringr_1.2.0 dplyr_0.7.4 purrr_0.2.4 readr_1.1.1
[6] tidyr_0.7.2 tibble_1.3.4 ggplot2_2.2.1 tidyverse_1.2.1
loaded via a namespace (and not attached):
[1] Rcpp_0.12.14 cellranger_1.1.0 compiler_3.4.2
[4] plyr_1.8.4 bindr_0.1 tools_3.4.2
[7] lubridate_1.7.1 jsonlite_1.5 nlme_3.1-131
[10] gtable_0.2.0 lattice_0.20-35 pkgconfig_2.0.1
[13] rlang_0.1.4 psych_1.7.8 cli_1.0.0
[16] rstudioapi_0.7.0-9000 parallel_3.4.2 haven_1.1.0
[19] bindrcpp_0.2 xml2_1.1.1 httr_1.3.1
[22] hms_0.4.0 grid_3.4.2 glue_1.2.0
[25] R6_2.2.2 readxl_1.0.0 foreign_0.8-69
[28] modelr_0.1.1 reshape2_1.4.2 magrittr_1.5
[31] scales_0.5.0 rvest_0.3.2 assertthat_0.2.0
[34] mnormt_1.5-5 colorspace_1.3-2 stringi_1.1.6
[37] lazyeval_0.2.1 munsell_0.4.3 broom_0.4.3
[40] crayon_1.3.4
>