[r] 한 번에 여러 패키지로드

require 명령을 반복해서 입력하지 않고 여러 패키지를 한 번에로드하려면 어떻게해야합니까? 나는 충돌과 화상의 세 가지 접근법을 시도했습니다.

기본적으로 패키지 이름의 벡터를로드 할 함수에 제공하고 싶습니다.

x<-c("plyr", "psych", "tm")

require(x)
lapply(x, require)
do.call("require", x)



답변

제안 된 함수의 여러 순열은 작동하지만 character.only인수를로 지정하는 경우에만 작동 합니다 TRUE. 빠른 예 :

lapply(x, require, character.only = TRUE)


답변

내가 유지하는 CRAN 패키지 팩맨 (Dason Kurkiewicz와 함께 작성)은 다음을 수행 할 수 있습니다.

따라서 사용자는 다음을 수행 할 수 있습니다.

## install.packages("pacman")
pacman::p_load(dplyr, psych, tm) 

패키지가 없으면 p_loadCRAN 또는 Bioconductor에서 다운로드합니다.


답변

트릭을 수행해야합니다.

lapply(x, FUN = function(X) {
    do.call("require", list(X))
})

(핵심 요소는 args인수 가 하나의 요소 만있는 경우에도 목록 에 do.call(what, args) 있어야한다는 것입니다!)


답변

동시에 패키지를 설치하고로드하려는 사람을 위해이 링크 에서이 기능을 발견했습니다.

# ipak function: install and load multiple R packages.
# check to see if packages are installed. Install them if they are not, then load them into the R session.

ipak <- function(pkg){
new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
if (length(new.pkg))
    install.packages(new.pkg, dependencies = TRUE)
sapply(pkg, require, character.only = TRUE)
}

# usage
packages <- c("ggplot2", "plyr", "reshape2", "RColorBrewer", "scales", "grid")
ipak(packages)


답변

다른 옵션은 패키지에서 제공됩니다 easypackages. 일단 설치되면 가장 직관적 인 방법으로 패키지를로드 할 수 있습니다.

libraries("plyr", "psych", "tm")

패키지에는 여러 패키지를 설치하는 기능도 포함되어 있습니다.

packages("plyr", "psych", "tm")

여기를 참조 하십시오 .


답변

lubripack 패키지를 사용하면 새 패키지를 깔끔하게 설치 한 다음 모든 패키지를 한 줄에로드 할 수 있습니다.

lubripack("plyr", "psych", "tm")

RStudio에서 위의 코드를 실행 한 후의 결과는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

패키지 설치 방법 :

아래 코드를 실행하여 패키지를 다운로드하고 GitHub에서 설치하십시오. GitHub 계정이 없어도됩니다.

library(devtools)
install_github("espanta/lubripack")


답변

daroczig의 솔루션을 기반으로 목록을 입력으로 지정하지 않으려면 사용할 수 있습니다

# Foo
mLoad <- function(...) {
  sapply(sapply(match.call(), as.character)[-1], require, character.only = TRUE)
}

# Example 
mLoad(plyr, dplyr, data.table)

~보다 짧은 ~

lapply(list('plyr', 'dplyr', 'data.table'), require, character.only = TRUE)