R 패키지의 네임 스페이스
사람들은 R 패키지에 네임 스페이스를 제공하는 방법을 어떻게 배우나요? "R Extensions"에있는 문서는 괜찮지 만 변수를 가져 오거나 내보낼 때 어떤 일이 발생하는지 알 수 없습니다.이 지시문에 대한 더미 가이드가 필요합니다.
무엇을 내보낼 지 어떻게 결정합니까? pkg ::: var 구문이 실제로 필요하지 않아야하는 모든 것입니까? 수입품은 어떻습니까?
가져 오기를 사용하면 함수 이름이 겹칠 때 다른 패키지 함수 사용이 혼동되지 않도록 더 쉽게 확인할 수 있습니까?
S4 클래스에 대한 특별한 고려 사항이 있습니까?
sp 및 rgdal과 같은 네임 스페이스를 사용하는 내가 익숙한 패키지는 매우 복잡합니다. 더 명확하게 할 수있는 간단한 예제가 있습니까?
devtools wiki에서 답변을 시작했습니다. http://adv-r.had.co.nz/Namespaces.html
몇 년 후 여기 ....
Chambers, 다른 StackOverflow 게시물 및 R의 많은 땜질에서 얻은 결과를 통합했습니다. http://blog.obeautifulcode.com/R/How-R-Searches-And-Finds-Stuff/
이것은 NAMESPACE / IMPORTS / DEPENDS를 구현하는 것이 아니라 이러한 구조의 목적에 대한 것입니다. 몇 가지 질문에 답하십시오.
내가 읽은 가장 명확한 설명 은 데이터 분석을위한 John Chambers의 Software : Programming with R , page 103에 있습니다. R Extensions 매뉴얼에서 이미 찾은 것보다 더 나은 무료 온라인 설명은 없습니다.
쉽고 작은 패키지를 골라 따라갈 수도 있습니다.
작은 패키지 중 하나 인 다이제스트 를 반 무작위로 살펴 보았습니다 . (작은) 동적 라이브러리를로드하고 하나의 심볼 인 digest()
함수를 내 보냅니다 . 다음은 NAMESPACE 파일의 내용입니다.
## package has dynamic library
useDynLib(digest)
## and one and only one core function
export(digest)
나머지 소스 파일을 살펴보고 예제와 함께 Writing R Extensions 를 읽고 몇 가지 실험을 해보십시오.
http://www.stat.uiowa.edu/~luke/R/namespaces/morenames.pdf
참조 URL : https://stackoverflow.com/questions/4371181/namespaces-in-r-packages
'IT TIP' 카테고리의 다른 글
현재 브랜치로 가져 오기를 거부하는 자식 (0) | 2020.12.30 |
---|---|
왜 어떤 사람들은“const T &”보다“T const &”를 선호합니까? (0) | 2020.12.30 |
"-fno-exceptions"를 사용하면 "new T"는 어떻게됩니까? (0) | 2020.12.30 |
Symfony2-Doctrine : ManyToMany 관계는 데이터베이스에 저장되지 않습니다. (0) | 2020.12.30 |
여러 조건으로 MySQL 조인 (0) | 2020.12.30 |