在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)中运行自动版本测试的形式获取它。
答案 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"