R을 다시 시작하지 않고 패키지를 언로드하는 방법
R을 다시 시작하지 않고 패키지를 언로드하고 싶습니다 (주로 다른 충돌하는 패키지를 시도 할 때 R을 다시 시작하기 때문에 실망 스럽지만 프로그램에서 하나의 기능을 사용하고 다른 기능을 사용하기 위해 사용할 수 있습니다) 참조는 아마도 그 사용에 대한 더 좋은 아이디어 일 것입니다).
?library
패키지를 언로드하는 옵션은 표시하지 않습니다.
패키지를 언로드 할 수 있는 제안 이 detach
있지만 다음 두 가지 모두 실패합니다.
detach(vegan)
오류
detach(vegan)
: 잘못된name
인수
detach("vegan")
오류
detach("vegan")
: 잘못된name
인수
패키지를 언로드하는 방법은 무엇입니까?
이것을 시도하십시오 ( ?detach
자세한 내용은 참조) :
detach("package:vegan", unload=TRUE)
여러 버전의 패키지를 한 번에로드 할 수 있습니다 (예 : 개발 버전과 다른 라이브러리에 안정적인 버전이있는 경우). 모든 사본이 분리되도록하려면이 기능을 사용하십시오.
detach_package <- function(pkg, character.only = FALSE)
{
if(!character.only)
{
pkg <- deparse(substitute(pkg))
}
search_item <- paste("package", pkg, sep = ":")
while(search_item %in% search())
{
detach(search_item, unload = TRUE, character.only = TRUE)
}
}
예를 들어 사용법
detach_package(vegan)
또는
detach_package("vegan", TRUE)
다음과 같이 unloadNamespace 명령을 사용할 수도 있습니다.
unloadNamespace("sqldf")
이 함수는 네임 스페이스를 언로드하기 전에 분리합니다.
RStudio (패키지)에서 확인란 버튼을 선택 취소 할 수 있습니다.
kohske가 답변으로 작성한 것을 시도하고 다시 오류가 발생하여 검색을 수행하여 저에게 도움이되는 것을 발견했습니다 (R 3.0.2).
require(splines) # package
detach(package:splines)
또는
library(splines)
pkg <- "package:splines"
detach(pkg, character.only = TRUE)
스크립트 사이를왔다 갔다 할 때 때때로 패키지를 언로드해야 할 수도 있습니다. 현재로드되지 않은 패키지를 언로드하려고 할 때 나타나는 경고를 방지하는 간단한 IF 문이 있습니다.
if("package:vegan" %in% search()) detach("package:vegan", unload=TRUE)
스크립트 맨 위에 이것을 포함하면 도움이 될 수 있습니다.
당신의 하루가 되길 바랍니다!
detach(package:PackageName)
작동하며 따옴표를 사용할 필요가 없습니다.
대체 솔루션을 추가하고 싶습니다. 이 솔루션은 패키지 언로드 에 대한 귀하의 질문에 직접 대답하지는 않지만 IMHO는 원하는 목표를 달성 할 수있는 명확한 대안을 제공합니다.이 이해는 이름 충돌을 피하고 다른 기능을 시도하는 것과 관련이 있습니다.
주로 충돌하는 다른 패키지를 시도 할 때 R을 다시 시작하기 때문에 실망 스럽지만 아마도 네임 스페이스 참조는 아마도 그 사용에 대한 더 좋은 아이디어이지만 프로그램에서 하나의 함수를 사용하고 다른 함수를 사용하는 데 사용될 수 있습니다
해결책
패키지 with_package
를 통해 제공되는 기능 은 withr
다음과 같은 가능성을 제공합니다.
검색 경로에 패키지를 첨부하고 코드를 실행 한 다음 검색 경로에서 패키지를 제거합니다. 그러나 패키지 네임 스페이스는 언로드 되지 않습니다 .
예
library(withr)
with_package("ggplot2", {
ggplot(mtcars) + geom_point(aes(wt, hp))
})
# Calling geom_point outside withr context
exists("geom_point")
# [1] FALSE
geom_point
예제에서 사용 된 전역 네임 스페이스에서 액세스 할 수 없습니다. 패키지를로드 및 언로드하는 것보다 충돌을 처리하는 더 확실한 방법이라고 생각합니다.
출력 창으로 이동 한 다음 패키지 아이콘 ( 플롯과 도움말 아이콘 사이에 있음)을 클릭하십시오 . 언로드 할 패키지에서 " tick / check mark "를 제거하십시오 .
패키지를 다시 사용하려면 패키지 앞에 " 틱 또는 확인 표시 "를 두거나 다음을 사용하십시오.
library (lme4)
참고 URL : https://stackoverflow.com/questions/6979917/how-to-unload-a-package-without-restarting-r
'Programming' 카테고리의 다른 글
Django-예약 된 작업을 설정 하시겠습니까? (0) | 2020.02.13 |
---|---|
localStorage 값의 최대 크기는 얼마입니까? (0) | 2020.02.13 |
C ++에서 개인 정적 멤버를 초기화하는 방법은 무엇입니까? (0) | 2020.02.13 |
포인터 "역 참조"는 무엇을 의미합니까? (0) | 2020.02.13 |
매직 넘버는 무엇이며 왜 나쁜가요? (0) | 2020.02.13 |