2011-01-21 6 views
9

R의 함수 라이브러리를 크게 개발했습니다 현재 모든 스크립트의 시작 부분에 함수를로드 (소스)합니다.R 패키지 및 실행 시간

패키지를 만들 수 있음을 확인했습니다.

내 질문은 : 내 기능이 실행 시간이 향상 될까요? (인터프리터 코드를 기계어로 변환 함)

패키지 생성은 무엇을합니까? 바이너리를 생성합니까?

감사 프레드

답변

14

아직 대규모의 실행 시간을 개선하지 않을 것이다 당신의 R 코드를 실장 R 컴파일러 없습니다. 또한 바이너리를 생성하지 않을 것입니다. 패키지 tarball에서 빌드해야합니다 (또는 빌드 할 때 CRAN 또는 유사한 패키지를 가져와야합니다). 현재 R 및 R 패키지의 바이트 컴파일러가 기본적으로 바이트로 컴파일됩니다. 속도 향상은 일반적으로 완만하며 C와 같은 속도는 기대하지 않습니다.

포장 R 코드는 정확히 동일합니다. 그것은 R 코드, 컴파일 될 코드 (C Fortran 등), 매뉴얼 페이지, 문서, 테스트 등을 사용자에게 배포되고 다중 아키텍처에 설치/빌드 될 수있는 표준 형식으로 패키징합니다.

패키지는 지연 객체 (Razy Loading)와 같이 R 객체 (함수가 말하는)가 필요할 때만로드되는 반면, 소스는 전역 환경 (기본적으로)으로 모두로드합니다.

코드를 배포하지 않으려 고한다면 패키지를 사용하는 것만으로도 이점은 거의 없지만 문서 및 예제/테스트를 패키지로 작성하고 작성하면 패키지 코드의 변경 사항에 대한 경고가 표시 될 수 있습니다 예제가 깨지거나 테스트가 실패하게됩니다. 그렇게하면 코드를 사용하는 경우에도 코드 안정성에 대한 정보를 얻을 수 있습니다!

+3

패키지를 작성하는 것은 재미 있고, 아직 작성하지 않은 경우 기능을 문서화하도록 강제합니다. 문서는 help()를 통해 쉽게 접근 할 수 있습니다. 도움말은 R 도움말과 관련해서 내가 멀리하는 것이나 모호하지 않은 것 중 하나입니다. –

+5

패키지는 R 코드를 관리하기위한 견고한 프레임 워크를 제공합니다. 기능 모음이 하나 또는 두 개의 소싱 된 R 파일 이상으로 성장하면 항상 유익한 것으로 나타났습니다. 심지어 개인적인 용도로도 사용할 수 있습니다. – Sharpie

+1

다른 OS 용 패키지를 자동으로 빌드하려면 [R-forge] (https://r-forge.r-project.org/)를 확인하십시오. – csgillespie