2013-07-07 42 views
6

Tôi muốn trả lại giấy phép gói như được khai báo trong tệp DESCRIPTION của gói R (lý tưởng tôi muốn có URL CRAN tự động thêm vào tất cả các giấy phép phổ biến mà nó nhận ra).R chức năng trả lại giấy phép của một gói?

Tôi nhận ra tôi có thể nhận được giấy phép bản thân R được phân phối theo với

license() 

mà ngạc nhiên không áp dụng cho các gói; ví dụ. giấy phép ("packagename")

Dữ liệu này cũng không được trả về bằng một cuộc gọi đến citation("packagename").

+3

Wow, 'cái chức năng license' chỉ là một chuỗi của 'cat' các chức năng kích hoạt thông tin giấy phép. Được xây dựng từ một tập tin giấy phép tại một số điểm hoặc là nó tất cả hardcoded trong đó trong nguồn? Kinh quá. Dù sao, có lẽ R-core muốn thêm vào đó để bạn có thể làm 'giấy phép (gói =" foo ")' .... – Spacedman

Trả lời

12

bạn đang tìm kiếm packageDescription

ví dụ:

packageDescription("stats", fields="License") 
[1] "Part of R 2.15.3" 

packageDescription("ggplot2", fields="License") 
[1] "GPL-2" 
+0

hoàn hảo! cảm ơn. – cboettig

2

Nếu bạn muốn để có được giấy phép cho tất cả các gói cài đặt, sau đó sử dụng lệnh installed.packages.

vay từ các trang trợ giúp cho lệnh này:

lisc <- installed.packages(fields = "License") 

Để sản lượng giấy phép vào một tập tin csv:

write.csv(lisc[,c(1,10)], "RPackageLicenses.csv")