[r] R에 어떤 패키지 버전이로드되어 있는지 확인하는 방법

대학 클러스터 사용 방법을 파악하는 중입니다. 2 가지 버전의 R이 설치되어 있습니다. 비표준 위치의 시스템 전체 R 2.11 (Debian 6.0) 및 R 2.14.2

눈과 함께 MPI를 사용하려고합니다. 내가 실행하려고하는 코드는 다음과 같습니다

library(snow)
library(Rmpi)
cl <- makeMPIcluster(mpi.universe.size()-1)
stopCluster(cl)
mpi.quit()

R 2.11에서는 문제없이 작동합니다. (로 스크립트를 시작합니다 mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R). 이제 R 2.14.2로 시도하면 다음 메시지가 나타납니다.

Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:

따라서 R은 R 2.11 용으로 컴파일 된 패키지 스노우 버전을로드하는 것으로 보입니다. R 2.14에서 snow를 홈 폴더에 설치하고 코드에 다음 줄을 추가했습니다.

.libPaths("/soft/R/lib/R/library")
.libPaths("~/R/x86_64-pc-linux-gnu-library/2.11")
print(.libPaths())
print(sessionInfo())
print(version)

그리고 오류 이전의 출력은 실제로 R 2.14.2를 실행 중이며 내 R 패키지 폴더가 검색 경로에서 첫 번째임을 확인합니다. 그러나 여전히 오류가 발생합니다.

그래서 내 질문은 R에로드 된 패키지 버전을 어떻게 결정합니까? installed.packages설치된 모든 패키지를 볼 수 있으므로로드 된 패키지에 대한 유사한 정보를 나열하는 기능이 있습니까?



답변

sessionInfo()이를 달성 하기 위해 사용할 수 있습니다 .

> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=C                 LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] graphics  grDevices utils     datasets  stats     grid      methods   base

other attached packages:
[1] ggplot2_0.9.0  reshape2_1.2.1 plyr_1.7.1

loaded via a namespace (and not attached):
 [1] colorspace_1.1-1   dichromat_1.2-4    digest_0.5.2       MASS_7.3-18        memoise_0.1        munsell_0.3
 [7] proto_0.3-9.2      RColorBrewer_1.0-5 scales_0.2.0       stringr_0.6
> 

그러나 의견과 아래 답변에 따라 더 나은 옵션이 있습니다.

> packageVersion("snow")

[1] ‘0.3.9’

또는:

"Rmpi" %in% loadedNamespaces()


답변

packageVersion어떤 버전의 패키지가로드되었는지 확인할 수 있습니다.

> packageVersion("snow")
[1]0.3.9

실행중인 R 버전을 확인하고 싶은 것처럼 들리지만 @Justin의 sessionInfo제안은 갈 길입니다.


답변

R의 버전을 확인하려면 다음을 실행하십시오. R --version

또는 R 쉘에 들어간 후 내용을 인쇄하십시오. version$version.string

편집하다

설치된 패키지의 버전을 확인하려면 다음을 수행하십시오.

라이브러리를로드 한 후 실행할 수 있습니다 sessionInfo ()

그러나 설치된 모든 패키지 목록을 알고 싶다면

packinfo <- installed.packages(fields = c("Package", "Version"))
packinfo[,c("Package", "Version")]

또는 라이브러리를 사용하여 정보를 추출한 후 특정 라이브러리 버전을 추출하려면 installed.package 위와 같은 함수를 는 매트릭스의 첫 번째 차원에서 패키지 이름을 사용하십시오.

packinfo["RANN",c("Package", "Version")]
packinfo["graphics",c("Package", "Version")]

위는 RANN 라이브러리 및 그래픽 라이브러리의 버전을 인쇄합니다.


답변

엄밀히 말하면 현재 모든 답변이 잘못되었습니다. packageVersion로드 된 패키지의 버전을 반환하지 않습니다. 디스크로 가서 거기에서 패키지 버전을 가져옵니다.

이것은 대부분의 경우에 차이를 만들지 않지만 때로는 그렇지 않습니다. 내가 알 수있는 한, 로드 된 패키지 의 버전을 얻는 유일한 방법 은 다소 해킹입니다.

asNamespace(pkg)$`.__NAMESPACE__.`$spec[["version"]]

pkg패키지 이름은 어디에 있습니까 ?

편집 :이 기능이 언제 추가되었는지 확실하지 않지만 사용할 수도 있습니다 getNamespaceVersion.

getNamespaceVersion(pkg)


답변

다음과 같이 시도해보십시오.

  1. package_version(R.version)

  2. getRversion()


답변

GUI 솔루션 :

RStudio를 사용하는 경우 Packages분할 창 에서 패키지 버전을 확인할 수 있습니다 .

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


답변

R 방법 packageDescription을 사용하여 설치된 패키지 설명을 얻고 버전 $Version은 다음과 같이 사용하십시오 .

packageDescription("AppliedPredictiveModeling")$Version
[1] "1.1-6"