2017-11-26 4 views
0

私は協力者とRコードを共有することができず、この問題を解決する方法が不思議です。私のコードは私のために正しく動作しますが、私の共同作業者は動作しません。私はR/Rstudioと私のパッケージを最新の状態に保ちます。Rコードを共有しない非互換性

私のコラボレーターは自分のPCでRを使用していますが、MacではRstudioを使用しています。 R/RstudioとMacとPC間のRコードの共有には、既知の非互換性はありますか?

これは、古いバージョンのパッケージによって発生している可能性があるという仮説です。私は協力者がRを最新の状態に保っていることを知っていますが、パッケージの管理方法が分かりません。

私はデータ操作のために整頓を使用しており、特にこれが問題です。

コードを正常に共有するにはどうすればよいですか?最近、誰かが "ライブラリ"を使用してパッケージを読み込む代わりに、代わりに "require"を使用して問題を解決することを推奨しました。

+2

Rはプログラミング言語です。コラボレーターは自分のPCでどのようなIDEを使用していますか?あなたがRを最新の状態に保つなら、あなたのコードは開いて、両方の人にとってうまく動くはずです。さもなければあなたの1人が間違っている(または嘘をついている)。 – ZeroRequiem

+0

OS XとWindows上のRの動作には、OS Xの 'method =" curl "と比較して、Windowsでは' download.files() 'の' method = "wininet"しかし、一般的に言えば、2つのオペレーティングシステムで同じリリースレベルでインストールされたパッケージは同じように動作し、同じ結果を生成します。 OS X、Windows、およびUbuntu LinuxにRをインストールしていて、現在のリリースレベルのパッケージが各オペレーティングシステムに適用されている場合、yはすべて同じ結果を生成します。 –

+0

ドッカーを使用して、同じイメージビルドで両方を実行するのが最善の方法です。しかし、 "ライブラリ"の代わりに "必要"を使うよう提案した人は無視してください。そのほとんど常に間違ったこと:https://yihui.name/en/2014/07/library-vs-require/ – Spacedman

答えて

2

両方のマシンが同じリリースレベルで同じパッケージを持つようにするには、Chris Eberweinの記事How to Upgrade R Without Losing Your Packagesに記載されているデータサイエンスの暴動に記載されている手順を使用できます。私はBioconductor以外のステップを転載していますので、人々はここで手順を見ることができます。

まず、現在インストールされているパッケージのリストを.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パッケージを再インストールするには、上記のリンク先の記事をお読みください。

すべてのパッケージの同じバージョンが複数のマシンにインストールされていることを確認する1つの方法は、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   
> 
関連する問題