Mengatur .libPaths() Untuk Menjalankan Skrip R Dari Baris Perintah Menggunakan Rscript.exe

Saya mencoba menjalankan skrip R melalui file BAT di Command Prompt Windows.

Skrip memerlukan beberapa paket R seperti data.table, tidyR, dll.

Untuk alasan operasional, semua paket dan dependensi R yang diperlukan (termasuk data.table) diinstal di C:\Users\username\Documents\R\R-3.5.1\library. Saya tidak diperbolehkan menginstal RStudio di lingkungan ini.

Ketika saya mencoba "C:\Program Files\R\R-3.5.1\bin\x64\Rscript.exe" script.R, saya mendapatkan kesalahan yang mirip dengan

Kesalahan di perpustakaan(data.tabel): tidak ada paket bernama 'data.tabel' Eksekusi dihentikan

Bagaimana cara mengatur .libPaths melalui Command Prompt agar menunjuk ke lokasi paket yang benar (yaitu ke C:\Users\username\Documents\R\R-3.5.1\library)?

Terima kasih sebelumnya.


person user799188    schedule 05.11.2018    source sumber
comment
bagaimana kalau menambahkan: .libPaths(paste("C:/Users/",Sys.getenv("USERNAME"),"/Documents/R/R-3.5.1/library",sep="")) di awal skrip Anda?   -  person Maylo    schedule 05.11.2018
comment
Saya pikir pertanyaan ini tidak ada hubungannya dengan tag batch-file...   -  person Aacini    schedule 05.11.2018


Jawaban (1)


Penafian: Saya tidak terbiasa dengan R.

Dari R: Jalur pencarian :

Jalur pencarian perpustakaan diinisialisasi saat startup dari variabel lingkungan R_LIBS (yang harus berupa daftar direktori yang dipisahkan titik dua tempat pohon perpustakaan R di-root) diikuti oleh direktori yang ada di variabel lingkungan R_LIBS_USER. Hanya direktori yang ada pada saat itu yang akan disertakan.

Secara default, R_LIBS tidak disetel, dan R_LIBS_USER disetel ke direktori 'R/R.version$platform-library/x.y' dari direktori home (atau 'Library/R/x.y/library' untuk CRAN macOS build), untuk R x.y.z.

variabel lingkungan dapat dibuat dengan perintah set VARIABLE_NAME=YOUR_VALUE batch.

Jadi file batch Anda mungkin akan terlihat seperti ini:

cd /d "C:\INSERT_PATH_TO_DIRECTORY_CONTAINING_script.R"
set "R_LIBS=C:\Users\username\Documents\R\R-3.5.1\library"
"C:\Program Files\R\R-3.5.1\bin\x64\Rscript.exe" script.R

Namun karena alasan portabilitas (misalkan seorang kolega meminta salinan skrip Anda atau komputer Anda mati) Saya sarankan meletakkan skrip, pustaka R, dan file batch dalam satu direktori, katakanlah C:\Users\username\Documents\R. File batch C:\Users\username\Documents\R\script.bat menjadi:

cd /d "%~dp0"
set "R_LIBS=%~dp0R-3.5.1\library"
"%PROGRAMFILES%\R\R-3.5.1\bin\x64\Rscript.exe" "%~dpn0.R"

%PROGRAMFILES% variabel lingkungan diperluas ke jalur lengkap folder program files, %~dp0 parameter diperluas ke jalur lengkap direktori yang menyimpan file batch Anda, dan %~dpn0 adalah path lengkap file batch tanpa ekstensi.

Perhatikan bahwa %~dp0R-3.5.1 bukan salah ketik karena %~dp0 menyertakan garis miring terbalik.

Dengan cara ini Anda dapat menyalin C:\Users\username\Documents\R ke D:\Users\SOMEOTHERNAME\Documents\R dan skrip akan tetap berjalan.

Jika Anda membuat versi lain dari skrip Anda, cukup salin file batch sehingga memiliki nama file yang sama dengan skrip Anda tetapi berekstensi .bat, bukan .R dan itu akan memanggil skrip baru - ini terbukti sangat berguna saat melakukan debug dan mendistribusikan skrip.

Alternatifnya, jika Anda lebih suka menginstal perpustakaan secara terpisah, Anda mungkin ingin menggunakan %HOMEDRIVE%%HOMEPATH% yang diperluas menjadi C:\Users\username.

Mengekstrak jalur folder Documents yang tepat, serta jalur instalasi R dimungkinkan tetapi memerlukan pembacaan registri sehingga sedikit lebih rumit.

person Jack White    schedule 05.11.2018