2011-01-21 41 views
9

Tôi đã phát triển một thư viện chức năng lớn trong R. Hiện tại tôi chỉ tải ("nguồn") các chức năng ở đầu tất cả các tập lệnh của tôi.Gói R và thời gian thực hiện

Tôi đã thấy rằng tôi có thể tạo các gói.

Câu hỏi của tôi là: Liệu điều đó có cải thiện được thời gian thực hiện các chức năng của tôi không? (bằng cách chuyển đổi mã thông dịch thành ngôn ngữ máy?)

Tạo gói là gì? Nó có tạo ra các tệp nhị phân không?

Cảm ơn fred

Trả lời

14

Có không phải là một trình biên dịch R chưa Bao bì đang R của bạn sẽ không cải thiện thời gian thực hiện của nó ồ ạt. Nó cũng sẽ không tạo các tệp nhị phân cho bạn - bạn cần phải xây dựng các gói đó từ gói tarball (hoặc lấy CRAN hoặc tương tự để xây dựng chúng cho bạn). Bây giờ có một trình biên dịch byte cho các gói R và R bây giờ được biên dịch theo byte mặc định. Tốc độ cải tiến nói chung là khiêm tốn - không mong đợi tốc độ giống như C.

Mã R đóng gói chỉ thực hiện chính xác điều đó; nó đóng gói mã R, mã được biên dịch (C Fortran, vv), các trang con người, tài liệu, các bài kiểm tra vv thành một định dạng chuẩn có thể được phân phối cho người dùng và được cài đặt/xây dựng trên nhiều kiến ​​trúc.

Gói có thể tận dụng những thứ như tải chậm như đối tượng R (chức năng của bạn nói) chỉ được tải khi cần, trong khi nguồn tải tất cả vào môi trường toàn cục (theo mặc định).

Nếu bạn không có ý định phân phối mã của mình thì có rất ít lợi ích khi đóng gói chỉ để bạn sử dụng, nhưng nếu bạn đóng gói và viết tài liệu và ví dụ/kiểm tra, bạn có thể được cảnh báo về những thay đổi trong mã gói phá vỡ các ví dụ hoặc gây ra các phép thử thất bại. Bằng cách đó, bạn được thông báo tốt hơn về độ tin cậy của mã của bạn, ngay cả khi bạn chỉ sử dụng nó!

+3

Xây dựng một gói thú vị và "buộc" bạn phải ghi lại các chức năng của mình (nếu bạn chưa làm như vậy). Tài liệu này có thể dễ dàng truy cập thông qua help(), đó là một trong những điều chính tôi thích về R - trợ giúp không bao giờ xa hoặc bị che khuất. –

+5

Một gói cung cấp một khung vững chắc để quản lý mã R. Tôi đã luôn tìm thấy chúng có lợi khi bộ sưu tập các chức năng phát triển vượt ra ngoài một hoặc hai tệp R có nguồn gốc --- ngay cả trong các tình huống sử dụng cá nhân. – Sharpie

+1

Xem [R-giả mạo] (https://r-forge.r-project.org/) để tự động tạo gói cho hệ điều hành khác. – csgillespie

Các vấn đề liên quan