以编程方式查找当前版本的R

时间:2015-09-17 22:04:22

标签: r

在R中,可以找出特定包的版本,并使用packageVersion()在其上使用关系运算符。例如:

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

如何为R本身的运行副本获取等效形式的版本信息?

要回答这个问题,你必须弄清楚究竟要去哪里,这并不像看起来那么容易:例如

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

我之所以这样问,是因为我每隔几个月就不得不弄明白......如果没有其他人这样做,我会回答。用于阐明packageVersion()package_version() ...

之间差异的额外信用

我认为这个问题在here中得到了回答,但我的问题的重点是具体如何以程序化形式获取信息(即,不仅仅是如何找出什么版本正在运行,但如何以适合在R)中运行自动版本测试的形式获取它。

2 个答案:

答案 0 :(得分:6)

这些内容记录在?R.Version帮助页面中。这取决于你想要如何格式化/存储的值。

packageVersion()从特定包中提取版本信息作为package_version对象。

package_version()基本上将版本号解析为可以轻松比较的package_version值。

您可以将版本与

进行比较
package_version(R.version) > package_version("3.0.1")

或类似的东西。

getRversion()帮助页面中指向的?R.Version函数会自动返回package_version个对象。

getRversion() > package_version("3.0.1")

此外,package_version个对象也可以使用一致的字符串进行自动转换

getRversion() > "3.0.1"

答案 1 :(得分:2)

AFAIK,version常量为您提供该信息。就我而言:

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"