Saya menjalankan R pada Windows, bukan sebagai administrator. Ketika saya menginstal paket, perintah berikut ini tidak berfungsi:
> install.packages("zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable
Untuk menginstal paket, saya harus menentukan lokasi perpustakaan:
install.packages("zoo", lib="C:/software/Rpackages")
Untuk memuat paket, saya juga harus menentukan lokasi perpustakaan:
library("zoo", lib.loc="C:/software/Rpackages")
Semua ini baik-baik saja, tetapi saya ingin melihat apakah saya dapat menambahkan C:/software/Rpackages
ke jalur pustaka entah bagaimana dan karenanya tidak harus mengetiknya setiap kali.
Ketika saya mencari online, saya menemukan bahwa salah satu cara untuk melakukan ini adalah mengedit Rprofile.site
file dan menambahkan baris
.libPaths("C:/software/Rpackages")
Namun, setelah melakukan ini, dan memulai RStudio, ini adalah output yang saya dapatkan
> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library"
The .libPaths
perintah yang saya ditambahkan ke Rprofile.site
tampaknya tidak memiliki efek apapun! Mengapa demikian? Atau yang lebih penting, bagaimana saya bisa memperbaiki masalah sehingga saya dapat menginstal dan memuat paket tanpa mengetik di lokasi perpustakaan?
Catatan: jika saya memulai RStudio, .libPaths()
perintah itu tampaknya berfungsi sebagaimana mestinya
.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library"
Bukankah itu aneh?
sumber
install.packages("zoo")
tidak bekerja? Pesan kesalahan, dll?install.packages("zoo")
--- tapi itu bukan pertanyaan saya yang sebenarnya, yaitu sekitar mengapa.libPaths()
diRprofile.site
tidak bekerja.Jawaban:
Saya biasanya mencoba menyimpan semua paket saya di satu pustaka, tetapi jika Anda ingin menambahkan pustaka mengapa tidak menambahkan pustaka baru (yang harus sudah ada di sistem file Anda) ke jalur pustaka yang ada?
Atau (dan ini akan membuat userLibrary tempat pertama untuk meletakkan paket baru):
Maka saya mendapatkan (setidaknya kembali ketika saya menulis ini awalnya):
The
.libPaths
fungsi yang berbeda sedikit dari kebanyakan fungsi nongraphics lainnya. Ini bekerja melalui efek samping. FungsiSys.getenv
danSys.setenv
laporan itu dan mengubah variabel lingkungan R telah dipisah tetapi.libPaths
dapat melaporkan atau mengubah targetnya.Informasi tentang proses startup R dapat dibaca di
?Startup
halaman bantuan dan ada materi RStudio di: https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudioDalam kasus Anda, tampaknya RStudio tidak menghargai pengaturan Rprofile.site atau menimpanya dengan membaca pengaturan .Rprofil dari salah satu default RStudio. Juga harus disebutkan bahwa hasil dari operasi ini juga menambahkan konten panggilan ke
.Library
dan.Library.site
, yang merupakan alasan lebih lanjut mengapa RStudio- (atau IDE lain atau jaringan terpasang-) yang dihosting R mungkin menunjukkan perilaku yang berbeda.Karena
Sys.getenv()
mengembalikan lingkungan sistem saat ini untuk proses R, Anda dapat melihat perpustakaan dan jalur lain dengan:Dua hal yang penting untuk menyimpan dan mengakses paket adalah (sekarang berbeda pada kotak Linux):
sumber
c()
vektor untuk memastikan perpustakaan baru pergi ke folder khusus.libPaths
-fungsi memiliki efek yang sama secara default. Ada juga perbedaan antara OS dalam bagaimana trailing slash ditangani. (Tidak OK di Windows). Pilihan lain ada. Lihat?.libPaths
file.exists
dan melanjutkan hanya jika jalurnya tidak hilang.Solusi yang tepat adalah dengan menetapkan variabel lingkungan
R_LIBS_USER
ke nilai path file ke folder perpustakaan yang Anda inginkan sebagai lawan mendapatkan RStudio untuk mengenali file Rprofile.site.Untuk mengatur variabel lingkungan
R_LIBS_USER
di Windows, buka Panel Kontrol (Properti Sistem -> Properti sistem lanjutan -> Variabel Lingkungan -> Variabel Pengguna) ke nilai yang diinginkan (jalur ke folder perpustakaan Anda), mis.Pengaturan R_LIBS_USER akan memastikan bahwa perpustakaan muncul pertama kali di .libPaths () terlepas dari memulai RStudio secara langsung atau dengan mengklik kanan file dan "Buka Dengan" untuk memulai RStudio.
Solusi Rprofile dapat berfungsi jika RStudio selalu dimulai dengan mengklik pintasan RStudio. Dalam hal ini, pengaturan direktori kerja default ke direktori yang menampung Rprofile Anda sudah cukup. Solusi Rprofile tidak berfungsi ketika mengklik pada file untuk memulai RStudio karena itu mengubah direktori kerja dari direktori kerja default.
sumber
.bash_profile
dan / atau.bashrc
). Lihat di sini: unix.stackexchange.com/questions/117467/... Untuk mengatur ini untuk sesi hanya ketik konsolexport R_LIBS_USER='directory_of_your_choice'
Saya berhasil memecahkan masalah dengan menempatkan kode dalam
.Rprofile
file di direktori kerja default.Pertama, saya menemukan lokasi direktori kerja default
Kemudian saya menggunakan editor teks untuk menulis
.Rprofile
file sederhana dengan baris berikut di dalamnyaAkhirnya, ketika saya memulai
R
dan menjalankan,.libPaths()
saya mendapatkan hasil yang diinginkan:sumber
Sys.getenv("HOME")
di konsol r. Saya tidak yakin apakah Anda mendapatkan output yang diinginkan. Saya pikir output yang diinginkan adalah apa yang ditunjukkan 42 dalam jawabannya stackoverflow.com/a/15170774/754550 . Dia menggunakan .libPaths dengan cara yang agak berbeda./superuser/749283/change-rstudio-library-path-at-home-directory
Edit ~ / .Lingkungan
sumber
Saya menemukan apa yang saya pikir merupakan solusi di sini (terima kasih Carl Schwarz di SFU) untuk menambahkan perpustakaan pribadi yang secara permanen (Anda tidak harus mendefinisikannya setiap sesi) mengenali apakah menggunakan R atau Rstudio, dan Rstudio memperlakukannya sebagai default pada mesin Mac saya. Saya belum melihatnya menjelaskan ini secara eksplisit pada SO, jadi saya merangkum langkah-langkah yang mereka sediakan, untuk Windows dan kemudian untuk Mac.
Untuk OS Windows 7:
Buat direktori di drive tempat Anda ingin memiliki perpustakaan pribadi Anda, misalnya C: \ User \ Rlibs (atau yang lain yang Anda miliki izinnya)
Cari / buka "Edit variabel lingkungan untuk akun Anda" di bilah pencarian Windows untuk mengedit pengaturan panel kontrol
Klik "Baru ..." di tengah jendela "Variabel Lingkungan"
Di jendela "Variabel Pengguna Baru", ketik R_LIBS untuk "Nama variabel", dan jalur ke direktori perpustakaan pribadi yang Anda buat, misalnya C: \ User \ Rlibs
Klik OK dan Anda akan melihat pasangan Variabel / Nilai di jendela variabel Pengguna
Klik OK lagi
Sekarang ketika Anda mulai R (atau Rstudio) dan ketik perintah
.libPaths()
Anda akan melihat perpustakaan pribadi yang Anda buat serta perpustakaan sistem R.Untuk Mac:
Di direktori "Beranda" atau "nama pengguna" Anda, buat folder bernama Rlibs
Buka aplikasi Terminal
Jenis:
echo "R_LIBS=~/Rlibs"> .Renvrion
Pastikan kasing cocok.Ketik
ls -a
untuk melihat daftar lengkap file dalam direktori, yang sekarang harus menyertakan .RvvVerifikasi bahwa file .Renviron telah disetel dengan benar:
more .Renviron
Luncurkan R / Rstudio dan ketik
.libPaths()
dan Anda akan melihat jalur baru ke perpustakaan pribadi Anda.sumber
Jika Anda tidak memiliki hak admin, juga dapat membantu untuk membuka file
Rprofile.site
-file yang terletak di \ R-3.1.0 \ etc dan menambahkan:Ini mengevaluasi
.libPath()
perintah secara langsung di awalsumber
Saya benar-benar kesulitan memahami hal ini. gorkypl memberikan solusi yang tepat di atas ketika saya menginstal ulang OS & Rstudio saya yang terakhir tetapi kali ini, mengatur variabel lingkungan saya tidak menyelesaikan.
Menghapus R dan Rstudio, membuat direktori C: \ R dan C: \ Rstudio kemudian menginstal ulang keduanya.
Tentukan R_LIBS_USER variabel pengguna ke direktori yang Anda pilih (sesuai jawaban gorkypl) dan mulai ulang mesin Anda agar variabel Pengguna dimuat. Buka Rstudio, kesalahan harus hilang.
Anda juga dapat menggunakan
Sys.setenv()
untuk memodifikasi R_LIBS_USER ke jalur pustaka alternatif Anda yang lebih mudah dan tidak perlu memulai ulang komputer Anda.Untuk melihat R_LIBS_USER diatur ke:
?Sys.getenv()
Membaca
help(Startup)
bermanfaat.sumber
Jika pustaka paket default Anda telah diubah setelah menginstal versi R baru atau dengan cara lain, Anda dapat menambahkan kedua pustaka untuk menggunakan semua paket dengan bantuan perintah di bawah ini. Dapatkan jalur perpustakaan yang ada:
.libPaths()
Sekarang, tetapkan jalur yang ada dan yang lama:
.libPaths(c(.libPaths(), "~/yourOldPath"))
Semoga ini bisa membantu.
sumber
cukup ubah folder default untuk pustaka R Anda di direktori tanpa hak Administrator, mis
sumber
Saya membaca readme. Dalam hal itu mereka menyebutkan menggunakan .libPaths () di baris perintah untuk memeriksa jalur mana yang ada. Saya punya 2 jalur perpustakaan sebelumnya. Ketika saya menggunakan perintah .libpath ("C: / Program Files / R / R-3.2.4revised / library") di mana saya ingin, itu mengubah jalur perpustakaan. Ketika saya mengetikkan .libPaths () di baris perintah lagi itu menunjukkan saya jalan yang benar. Semoga ini membantu
sumber
Di Ubuntu, cara yang disarankan untuk mengubah jalur pustaka default untuk pengguna, adalah dengan mengatur
R_LIBS_USER
variabel dalam~/.Renviron
file.sumber
salin tautan di atas dengan koma terbalik ganda
Jalur default Anda akan berubah untuk menginstal pakage
sumber
Jika Anda ingin mengubah jalur pustaka Anda secara permanen (tanpa memanggil .libPath () setiap kali ketika memasukkan R, ini berfungsi untuk saya:
buat. Profil di bawah direktori home Anda. (~ /. Profil)
ketik.
.libPaths(c( .libPaths(), "your new path" ))
File profil, simpan.buka R (direktori apa saja) dan periksa, ketikkan saja
.libPaths()
, Anda dapat menemukan jalur libaray Anda diperbarui!sumber
Saya melihat ini karena R mengalami masalah menginstal ke lokasi default dan bukannya hanya meletakkan paket ke folder temp. Ternyata itu adalah pembaruan terbaru untuk Mcaffee Endpoint Security yang tampaknya memiliki masalah dengan R. Anda dapat menonaktifkan perlindungan ancaman saat Anda menginstal paket dan itu akan berfungsi dengan baik.
sumber