source

R에 로드된 패키지 버전을 확인하는 방법은 무엇입니까?

manycodes 2023. 6. 15. 21:58
반응형

R에 로드된 패키지 버전을 확인하는 방법은 무엇입니까?

저는 제 대학 클러스터를 사용하는 방법을 찾는 중입니다.2가지 버전의 R이 설치되어 있습니다.비표준 위치에 있는 시스템 전체 R 2.11(데비안 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.RR2.14.2로 실행하려고 하면 다음과 같은 메시지가 표시됩니다.

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

그래서 R은 R2.11용으로 컴파일된 패키지 Snow 버전을 로드하는 것 같습니다.R2.14에 따른 스노우를 홈 폴더에 설치하고 코드에 다음 행을 추가했습니다.

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

오류가 발생하기 전의 출력은 R2.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("snow")
[1] ‘0.3.9’

참고:

패키지에 다음이 없는 한 패키지를 '찾을 수' 없습니다.DESCRIPTION유효한 파일을 포함하는 파일Version필드. 패키지 디렉터리를 찾을 수 없는 경우와 적합한 디렉터리가 있지만 유효하지 않은 경우 서로 다른 경고가 제공됩니다.DESCRIPTION파일.

비록 당신이 어떤 버전의 R을 실행하고 있는지 보고 싶은 것처럼 들리지만, 이 경우 @Justin의 제안이 가야 할 길입니다.

엄밀히 말하면, 이 때의 답은 모두 틀렸습니다. packageVersion로드된 패키지의 버전을 반환하지 않습니다.디스크로 이동하여 패키지 버전을 가져옵니다.

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

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

어디에pkg패키지 이름입니다.

편집: 이 기능이 언제 추가되었는지는 잘 모르겠지만 사용할 수도 있습니다.getNamespaceVersion이것이 더 깨끗합니다.

getNamespaceVersion(pkg)

R execute 버전 확인하기R --version

R 에 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 라이브러리와 그래픽 라이브러리의 버전을 인쇄합니다.

다음과 같은 방법을 사용할 수 있습니다.

  1. package_version(R.version)

  2. getRversion()

GUI 솔루션:

에서 패키지 할 수 .Packages창구

enter image description here

방법을 합니다.packageDescription에 대한 버전에 는 설된패설가져고버사다용니합전만을 사용하십시오.$Version다음과 같이:

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

이전 답변을 기반으로 R-버전을 인쇄하는 간단한 방법과 네임스페이스에 로드된 각 패키지의 이름 및 버전이 있습니다.주피터 노트북에서 작동합니다. 주피터 노트북을 실행하는 데 문제가 있었습니다.sessionInfo()그리고.R --version.

print(paste("R", getRversion()))
print("-------------")
for (package_name in sort(loadedNamespaces())) {
    print(paste(package_name, packageVersion(package_name)))
}

외부:

[1] "R 3.2.2"
[1] "-------------"
[1] "AnnotationDbi 1.32.2"
[1] "Biobase 2.30.0"
[1] "BiocGenerics 0.16.1"
[1] "BiocParallel 1.4.3"
[1] "DBI 0.3.1"
[1] "DESeq2 1.10.0"
[1] "Formula 1.2.1"
[1] "GenomeInfoDb 1.6.1"
[1] "GenomicRanges 1.22.3"
[1] "Hmisc 3.17.0"
[1] "IRanges 2.4.6"
[1] "IRdisplay 0.3"
[1] "IRkernel 0.5"

오래된 질문이지만 로드된 모든 패키지에 대한 간략한 개요를 얻을 수 있는 내가 가장 좋아하는 명령은 다음과 같습니다.

(.packages())

로드된 모든 패키지의 어떤 버전이 설치되어 있는지 보려면 위 명령을 사용하여 부분 집합을 지정합니다.installed.packages().

installed.packages()[(.packages()),3]

번호버전의 3를하면 열번패호를(패키지 버전의 경우 3)에 저장된 다른 정보를 얻을 수 .installed.packages()입니다.다음은 버전 번호 및 종속성의 예입니다.

installed.packages()[(.packages()),c(3,5)]

검색()은 세션에서 첨부된 패키지의 더 단순한 목록을 제공할 수 있습니다(즉, sessionInfo()).

- R {base} - R
설명: 연결된 패키지 목록을 제공합니다.검색()

search()
#[1] ".GlobalEnv"        "package:Rfacebook" "package:httpuv"   
#"package:rjson"    
#[5] "package:httr"      "package:bindrcpp"  "package:forcats"   # 
#"package:stringr"  
#[9] "package:dplyr"     "package:purrr"     "package:readr"     
#"package:tidyr"    
#[13] "package:tibble"    "package:ggplot2"   "package:tidyverse" 
#"tools:rstudio"    
#[17] "package:stats"     "package:graphics"  "package:grDevices" 
#"package:utils"    
#[21] "package:datasets"  "package:methods"   "Autoloads"         
#"package:base"

@@GSee의 을 참고하십시오.utils::packageVersion()가 아닙니다.character조건을 작성하는 데 완벽하게 사용할 수 있습니다.

packageVersion("dplyr")
#> [1] '1.0.7'
packageVersion("dplyr")>1
#> [1] TRUE
packageVersion("dplyr")>'1.0'
#> [1] TRUE
packageVersion("dplyr")>'1.1'
#> [1] FALSE

2021-08-23 reprex 패키지에 의해 생성됨 (v2.0.0)

다음 코드를 사용하여 시스템에 설치된 R 패키지 버전을 가져옵니다.

installed.packages(fields = c ("Package", "Version"))

간히사를 사용하세요.help(package="my_package")표시된 버전을 확인합니다.

한 " 이동한패버없전가다다니정합고이키는"에 다른 가정합니다..libPaths.

언급URL : https://stackoverflow.com/questions/11103189/how-to-find-out-which-package-version-is-loaded-in-r

반응형