2015-09-17 17 views
5

Trong R, người ta có thể tìm ra phiên bản của một gói cụ thể và sử dụng toán tử quan hệ trên đó, với packageVersion(). Ví dụ:lập trình tìm phiên bản hiện tại của R

packageVersion("MASS") 
(pp <- packageVersion("MASS")) 
## [1] ‘7.3.43’ 
pp > '7.2.0' 
## TRUE 

Làm cách nào để nhận được thông tin phiên bản tương đương cho bản sao đang chạy của bản thân R?

Để trả lời câu này, bạn phải tìm ra chính xác nơi để xem xét, đó là không dễ dàng như nó có vẻ: ví dụ

grep("R[._vV]",apropos("version"),value=TRUE) 
## [1] ".ess.ESSRversion" ".ess.Rversion" "getRversion"  
## "R_system_version" 
## [5] "R.Version"  "R.version"  "R.version.string" 

tôi yêu cầu này bởi vì tôi thất vọng vì phải con số cứ vài tháng một lần ... tôi sẽ trả lời nếu không ai khác làm. tín dụng thêm cho việc làm sáng tỏ sự khác biệt giữa packageVersion()package_version() ...

Tôi nghĩ rằng câu hỏi này được trả lời trong qua here, nhưng trọng tâm của câu hỏi của tôi là đặc biệt như thế nào để có được những thông tin trong chương trình dạng (tức là, không chỉ làm thế nào để tìm hiểu phiên bản nào đang chạy, nhưng làm thế nào để có được nó trong một hình thức phù hợp để chạy thử nghiệm phiên bản tự động trong R).

+1

thể trùng lặp của [phiên bản nào của R đang chạy trong máy tính của tôi?] (Http://stackoverflow.com/ câu hỏi/15983069/phiên bản-của-r-đang-chạy-trong-máy tính của tôi) – smci

+0

@smci - Tôi không đồng ý. Nó không phải là một bản sao chính xác - Ben muốn nhiều hơn chỉ là một bản in ra khỏi những gì phiên bản đang được chạy. – Dason

+0

@ Dason: đó không phải là câu hỏi khác được yêu cầu, và nó không phải là những gì [câu trả lời] (http://stackoverflow.com/a/15983118/202229) đã cho. Ví dụ, tôi. IMO nào tốt hơn câu trả lời được chấp nhận. Dù sao: làm thế nào để chuẩn hóa các câu hỏi về chủ đề này? – smci

Trả lời

6

Đây là tài liệu trong trang trợ giúp ?R.Version. Nó phụ thuộc vào chính xác cách bạn muốn giá trị được định dạng/lưu trữ thực sự.

packageVersion() trích xuất thông tin phiên bản từ gói cụ thể dưới dạng đối tượng package_version.

package_version() về cơ bản phân tích số phiên bản thành giá trị package_version có thể dễ dàng so sánh.

Bạn có thể so sánh các phiên bản với

package_version(R.version) > package_version("3.0.1") 

hoặc một cái gì đó như thế.

Chức năng getRversion() được trỏ đến trong trang trợ giúp ?R.Version tự động trả về đối tượng package_version.

getRversion() > package_version("3.0.1") 

Plus package_version đối tượng có thể làm chuyển đổi tự động với dây phù hợp cũng

getRversion() > "3.0.1" 
+0

hmm, tôi đã thử 'getRversion()>" 3.0.1 "' ... Tôi đoán TMTOWTDI ... –

+0

Điểm tốt @BenBolker. Tôi cũng đã thêm thông tin đó. – MrFlick

+1

TMTOWTDI = Có nhiều cách để thực hiện. – orizon

2

AFAIK, hằng số version cung cấp cho bạn thông tin đó. Trong trường hợp của tôi:

version 
## platform  x86_64-pc-linux-gnu   
## arch   x86_64      
## os    linux-gnu     
## system   x86_64, linux-gnu   
## status          
## major   3       
## minor   2.2       
## year   2015       
## month   08       
## day   14       
## svn rev  69053      
## language  R       
## version.string R version 3.2.2 (2015-08-14) 
## nickname  Fire Safety    
with(version, paste(major, minor, sep='.')) 
## [1] "3.2.2" 
Các vấn đề liên quan