[r] “패키지 ‘xxx’를 사용할 수 없습니다 (R 버전 xyz)”경고를 어떻게 처리해야합니까?

사용하여 패키지를 설치하려고했습니다.

install.packages("foobarbaz")

그러나 경고를 받았다

Warning message:
package 'foobarbaz' is not available (for R version x.y.z)

R이 패키지를 사용할 수 있다고 생각하지 않는 이유는 무엇입니까?

이 문제의 특정 사례를 언급하는 다음 질문도 참조하십시오.

내 패키지가 R 2.15.2에서 작동하지 않음
‘Rbbg’를 사용할 수 없음 (R 버전 2.15.2의 경우)
패키지를 사용할 수 없음 (R 버전 2.15.2의 경우)
패키지 doMC를 R 버전 3.0.0에서 사용할 수 없음 install.packages
‘fPortfolio’패키지에는 종속성 ‘Rglpk’를 사용할 수
없습니다. R 버전에서 패키지를 사용할 수없는 경우 어떻게해야합니까?
R 용 bigvis 패키지는 R 버전 3.0.1에서 사용할 수 없습니까?
‘syncwave’/ ‘mvcwt’패키지를 사용할 수 없음 (R 버전 3.0.2의 경우)
패키지 ‘diamonds’를 사용할 수 없습니다 (R 버전 3.0.0의 경우)
R 용 plyr 패키지를 R 버전 3.0.2에서 사용할 수 없습니까?
R 64 3.0.2 패키지 “makeR” 에 패키지 bigmemory가 설치
되지 않음 (버전 3.0.2의 경우)
‘RTN’패키지를 사용할 수 없음 (R 버전 3.0.1의 경우)
geoR 패키지 설치 문제 해결
‘twitterR’을 사용할 수 없습니다 (R 버전 3.1.0의 경우)
‘Rcpp, 패키지를 설치하는 방법은 무엇입니까? “패키지를 사용할 수 없습니다”
라는 메시지가 있습니다. ‘데이터 세트’패키지를 사용할 수 없습니다 (R 버전 3.1.1의 경우)
“패키지 ‘rhipe’를 사용할 수 없습니다 (R 버전 3.1.2의 경우)”



답변

1. 철자를 쓸 수 없습니다

가장 먼저 테스트 할 것은 패키지 이름의 철자를 정확히 입력 했습니까? 패키지 이름은 R에서 대소 문자를 구분합니다.


2. 당신은 올바른 저장소를 보지 않았다

다음으로 패키지가 사용 가능한지 확인해야합니다. 유형

setRepositories()

? setRepositories 도 참조하십시오 .

R이 어떤 저장소를 찾아 패키지를 찾고 선택적으로 추가 저장소를 선택하십시오. 최소한, 당신은 일반적으로 선택하고 CRAN, CRAN (extras)Windows를 사용하는 Bioc*경우 , 저장소를 사용하는 경우[gen / prote / metabol / transcript] omics 생물학적 분석.

영구적으로 변경하려면, 같은 줄을 추가 setRepositories(ind = c(1:6, 8))하여에 Rprofile.site파일.


3. 패키지가 선택한 리포지토리에 없습니다

사용 가능한 모든 패키지를 사용하여 반환

ap <- available.packages()

R의 사용 가능한 패키지 이름 , ? available.packages 도 참조하십시오 .

이것은 큰 행렬이므로 데이터 뷰어를 사용하여 검사 할 수 있습니다. 또는 행 이름을 테스트하여 패키지가 사용 가능한지 빠르게 확인할 수 있습니다.

View(ap)
"foobarbaz" %in% rownames(ap)

또는 CRAN , CRAN (extras) , Bioconductor , R-forge , RForgegithub 용 브라우저에서 사용 가능한 패키지 목록을 볼 수 있습니다 .

CRAN 미러와 상호 작용할 때 나타날 수있는 또 다른 경고 메시지는 다음과 같습니다.

Warning: unable to access index for repository

선택한 CRAN 저장소를 현재 사용할 수 없음을 나타낼 수 있습니다. 다른 미러를 선택 chooseCRANmirror()하고 설치를 다시 시도 할 수 있습니다 .


패키지를 사용할 수없는 데는 몇 가지 이유가 있습니다.


4. 당신은 패키지를 원하지 않습니다

아마도 당신은 정말로 패키지를 원하지 않을 것입니다. 패키지와 라이브러리 또는 패키지와 데이터 세트 의 차이점에 대해 혼동되는 것이 일반적 입니다.

패키지는 코드, 데이터 또는 문서 제공과 같이 R을 확장하는 표준화 된 자료 모음입니다. 라이브러리는 R이 사용할 수있는 패키지를 찾는 곳 (디렉토리)입니다

사용 가능한 데이터 세트를 보려면 다음을 입력하십시오.

data()

5. R 또는 바이오 컨덕터가 오래되었습니다

최신 버전의 R (또는 가져 오거나 의존하는 패키지 중 하나)에 종속 될 수 있습니다. 보다

ap["foobarbaz", "Depends"]

R 설치를 현재 버전으로 업데이트하십시오. Windows에서 이것은 installr패키지 를 통해 가장 쉽게 수행됩니다 .

library(installr)
updateR()

(물론 install.packages("installr")먼저 해야 할 수도 있습니다 .)

Bioconductor 패키지와 마찬가지로 Bioconductor 설치를 업데이트해야 할 수도 있습니다.

source("http://bioconductor.org/biocLite.R")
biocLite("BiocUpgrade")

6. 패키지가 오래되었습니다

보관 되지 않았을 수 있습니다 (더 이상 유지되지 않고 더 이상 R CMD check테스트를 통과하지 못한 경우 ).

이 경우 다음을 사용하여 이전 버전의 패키지를로드 할 수 있습니다 install_version()

library(remotes)
install_version("foobarbaz", "0.1.2")

대안은 github CRAN 미러에서 설치하는 것입니다.

library(remotes)
install_github("cran/foobarbaz")

7. Windows / OS X / Linux 바이너리가 없습니다

그것은이 없을 수 있습니다 윈도우 바이너리를 인해 CRAN이없는 것을 추가 소프트웨어를 필요로합니다. 또한 일부 패키지는 일부 또는 모든 플랫폼의 소스를 통해서만 사용할 수 있습니다. 이 경우 CRAN (extras)리포지토리에 버전이있을 수 있습니다 ( setRepositories위 참조 ).

패키지에 컴파일 코드 (예 : C, C ++, FORTRAN)가 필요한 경우 Windows 설치 Rtools 또는 OS X에서 XCode와 함께 개발자 도구를 설치하고 다음을 통해 패키지의 소스 버전을 설치하십시오.

install.packages("foobarbaz", type = "source")

# Or equivalently, for Bioconductor packages:
source("http://bioconductor.org/biocLite.R")
biocLite("foobarbaz", type = "source")

CRAN에서는 NeedsCompilation설명 의 플래그를 보고 소스에서 패키지를 빌드하기위한 특수 도구가 필요한지 알 수 있습니다 .


8. 패키지는 github / Bitbucket / Gitorious에 있습니다.

Github / Bitbucket / Gitorious에 리포지토리가있을 수 있습니다. 이러한 패키지에는 remotes패키지를 설치해야합니다.

library(remotes)
install_github("packageauthor/foobarbaz")
install_bitbucket("packageauthor/foobarbaz")
install_gitorious("packageauthor/foobarbaz")

(와 마찬가지로 먼저 installr해야 할 수도 있습니다 install.packages("remotes").)


9. 패키지의 소스 버전이 없습니다

패키지의 이진 버전을 사용할 수 있지만 소스 버전은 사용할 수 없습니다. 설정을 통해이 확인을 끌 수 있습니다

options(install.packages.check.source = "no")

에 기재된 imanuelc하여이 SO 응답 과의 세부 단면도 ?install.packages.


10. 패키지가 비표준 저장소에 있습니다.

패키지가 비표준 저장소 (예 :)에 Rbbg있습니다. CRAN 표준을 준수하는 것으로 가정하면 다음을 사용하여 계속 다운로드 할 수 있습니다 install.packages. 리포지토리 URL 만 지정하면됩니다.

install.packages("Rbbg", repos = "http://r.findata.org")

RHIPE반면에 CRAN과 같은 저장소에는 없으며 자체 설치 지침이 있습니다.


답변

최신 R (3.2.3)에는 버그가있어 올바른 패키지를 찾지 못할 수 있습니다. 해결 방법은 리포지토리를 수동으로 설정하는 것입니다.

install.packages("lubridate", dependencies=TRUE, repos='http://cran.rstudio.com/')

다른 질문 에서 해결책을 찾았습니다.


답변

R및의 일부 버전에 문제가있는 것 같습니다 libcurl. 나는에 동일한 문제가 있었다 Mac (R version 3.2.2)그리고 Ubuntu (R version 3.0.2)두 경우에 그것은 전에이 작업을 실행하여 간단하게 해결 된 install.packages명령

options(download.file.method = "wget")

해결책은 친구가 제안했지만 포럼에서 찾을 수 없으므로 다른 사람 에게이 답변을 제출하십시오.


답변

이 솔루션은 R을 망칠 수 있지만 여기 99 %의 시간 동안 작동하는 가장 쉬운 솔루션이 있습니다.

당신이해야 할 일은 다음과 같습니다.

install.packages('package-name',repos='http://cran.us.r-project.org')

여기 저자가 언급했듯이


답변

11. R (또는 다른 종속성)이 오래되어 업데이트하지 않으려 고합니다.

경고 이것은 최선의 방법은 아닙니다.

  • 패키지 소스를 다운로드하십시오.
  • DESCRIPTION파일로 이동 하십시오.
  • 텍스트 편집기를 사용하여 문제의 줄을 제거하십시오.

    Depends: R (>= 3.1.1)
  • 로컬 (즉,의 상위 디렉토리 DESCRIPTION) 에서 설치

    install.packages("foo", type="source", repos=NULL)

답변

나에게 일어난 일 중 하나는 내 리눅스 배포판에서 제공하는 R 버전 (Ubuntu 14.04에서 제공하는 R 버전 3.0.2)이 CRAN에서 사용할 수있는 최신 버전의 패키지 (제 경우에는 plyr버전 1.8.3 )에 비해 너무 오래되었습니다. 오늘의로). 해결책은 R에서 설치하려고하는 대신 배포판의 패키징 시스템을 사용하는 것입니다 ( apt-get install r-cran-plyr버전 1.8.1을 얻었습니다 plyr). 어쩌면 나는를 사용하여 R을 업데이트하려고 시도했을 수도 updateR()있지만 그렇게하면 배포판의 패키지 관리자를 방해 할 것입니다.


답변

이로 인해 문제를 디버깅하는 데 많은 시간이 절약되었습니다. 대부분의 경우 오래된 미러 일뿐입니다. 이 기능은 https://cran.rstudio.com/다음을 사용하여 종속성이있는 여러 패키지를 설치할 수 있습니다 .

packages <- function(pkg){
    new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
    if (length(new.pkg))
        install.packages(new.pkg, dependencies = TRUE, repos='https://cran.rstudio.com/')
    sapply(pkg, require, character.only = TRUE)
}

packages(c("foo", "bar", "baz"))