2011-01-10 28 views
5

Tôi đang viết một gói R trong đó bạn có thể tạo mạng và xuất chúng theo các loại tệp khác nhau. Tôi đã tìm thấy gói SVGRTipsDevice có thể được sử dụng để tạo ảnh SVG có chứa các chú giải công cụ và siêu liên kết mà tôi thực sự thích. Tôi đã bao gồm điều này trong gói phần mềm của tôi như là một trong những tùy chọn để đầu ra, làm cho nó không phải là một phần thiết yếu của gói của tôi, nhưng một phần của nó dù sao (một mà tôi muốn giữ).Viết một gói R khác nhau theo kiến ​​trúc

Vấn đề bây giờ là, gói này chỉ dành cho người dùng 32 bit. Bởi vì gói của tôi phụ thuộc vào nó 64bit người dùng không thể cài đặt nó. có vẻ như tôi phải làm cho gói của tôi cũng chỉ 32 bit hoặc loại bỏ khả năng SVG (hiện tại tôi đã chọn thứ hai để tải lên CRAN, với một liên kết đến gói đầy đủ trên trang web của tôi).

Có cách nào để thực hiện việc này khác nhau không? Giống như làm cho các gói cài đặt cho bất cứ ai nhưng chỉ làm cho các chức năng SVG có sẵn cho người dùng 32bit?

+0

Khi bạn nói "làm cho nó không phải là một phần thiết yếu của gói của tôi, nhưng một phần của nó" bạn có xây dựng gói của mình với SVGRTipsDevice trong Đề xuất không? – mdsumner

Trả lời

4

Các gói được liệt kê trong trường Đề xuất: hoặc Nâng cao: của tệp DESCRIPTION không cần cài đặt trên hệ thống của người dùng để cài đặt gói của bạn, để người dùng 32/64 bit có thể cài đặt gói của bạn. Thay vì thử nghiệm cho bit-ness, bạn có thể ok <- suppressWarnings(require(SVGToolTips))), có thể trong .onLoad hoặc tương tự.

+0

Cảm ơn, đây chính xác là những gì tôi cần. Đây là gói đầu tiên của tôi và tôi đang mắc một số sai lầm tân binh. –

6

Cách đơn giản nhất tôi có thể nghĩ là để kiểm tra Sys.info() cho các loại máy:

Vì vậy, trên máy tính của tôi:

Sys.info()["machine"] 
machine 
"x86_64" 

EDIT Tôi tin rằng cho chúng ta biết kiến ​​trúc của phần cứng, không dù R là 32 hay 64 bit. Vì vậy, nếu một người sử dụng có phần cứng 64 bit và được chạy 32 bit R, các mã trên vẫn sẽ trở lại x86_64 Như Sacha chỉ ra cho tôi, một giải pháp tốt hơn là chạy:

R.Version()$arch 
[1] "x86_64" 

Vì vậy, bạn có thể thấy tôi chạy hệ điều hành 64 bit VÀ tôi đang chạy phiên bản 64 bit của R.

+0

Cảm ơn, điều này sẽ rất hữu ích! –

+0

Bạn có thể lấy thông tin về kiến ​​trúc của R với: R.Version() $ arch –

+0

Sacha, đó là một điểm thực sự tốt. Tôi đã chỉnh sửa câu trả lời của mình. Cảm ơn bạn đã chỉ ra điều đó. –

0

Bạn cũng có thể tạo gói packagename-32bit với chức năng bổ sung.

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