簡體   English   中英

在R中加載(如果需要安裝)軟件包的便捷方法

[英]Convenient way to load (and if needed install) a package in R

用戶可以在許多PC上工作。 好的代碼無論在什么PC上運行都可以運行。 假設一個人不希望依賴於首選項和選項文件,那么最好的方法是確保已加載軟件包(並在需要時安裝)。

library命令很酷,但是require命令要好得多。 但是甚至require還不能完成工作。

觸發不需要的重新安裝(例如,在R studio中)會引起重新啟動R會話的有趣提示-這就是為什么最好避免不必要的安裝的原因。

一種可能的技巧A是執行此操作(不要過於頻繁地鍵入程序包名稱)

doInstall <- T;toInstall <- c("downloader");
if(doInstall) install.packages(toInstall);
lapply(toInstall, library, character.only = T)

或更糟糕的把戲B

if (!require(downloader)) {install.packages("downloader"); require(downloader)}

有一個命令可以做到的“ 2015年方式”嗎?

justdoitall(c("downloader","dplyr"))

假設不希望依賴於首選項和選項文件

那排除了將任何內容放入.Rprofile或使用外部軟件包的可能性,因此我們只能使用base R來解決您的問題。 如果是這種情況,那么答案就是您做不到的事情比您在問題中所寫的要好得多(我更喜歡B而不是A)

如果您願意彎曲一點並要求用戶首先加載程序包(可以使用.Rprofile在啟動時完成),則可以使用一些選項來實現所需的功能。

installr::require2pacman::p_load您的要求。 披露:我是pacman的作者/維護者。 我同意您的觀點,盡管我們計划共享代碼,但我們不應該依賴選項或外部文件。 我幾乎每天都在使用pacman (它的用途遠不止安裝/加載軟件包),但在大多數情況下,這些類型的功能應被視為對交互使用很有用,但是如果您要使用可移植,可共享的代碼而不必擔心軟件包是否存在將可用,您將不得不根據問題中的內容采取某些措施。

這是使用pacman方法安裝軟件包郵政編碼的示例。

if (!require("pacman")) install.packages("pacman")
pacman::p_load(zipcode)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM