R包的版本号如1.97.1。我可以查看版本号是什么
packageVersion("data.table")
在我的电脑上,它返回1.10.0。
我想要做的是检查data.table版本是否比1.9.7更新,因为1.9.7之后的版本具有我的代码所需的功能。我已经尝试将版本拆分为其组成部分并以不同的方式对其进行评估,但我还没有找到任何可行的方法。 任何建议都非常感谢。
答案 0 :(得分:3)
根据本杰明的建议,正确的工具是compareVersion
:
version_above <- function(pkg, than) {
as.logical(compareVersion(as.character(packageVersion(pkg)), than))
}
packageVersion("ggplot2")
# [1] '2.2.1'
version_above("ggplot2", "2.0.0")
# [1] TRUE
version_above("ggplot2", "3.0.0")
# [1] FALSE
compareVersion(a, b)
的结果是
-1
if a < b
0
if a == b
1
if a > b
来源:
?utils::compareVersion
答案 1 :(得分:3)
虽然utils::compareVersion()
没问题,但我会说使用带有比较运算符的packageVersion()
(在评论中用@ G5W表示)更简单:
packageVersion("data.table")
[1] ‘1.10.0’
> packageVersion("data.table")>"1.9.8"
[1] TRUE
> packageVersion("data.table")>"1.10.01"
[1] FALSE
> packageVersion("data.table")=="1.10.0"
[1] TRUE
?packageVersion
的例子说明了这一点;在?package_version
:
函数'numeric_version','package_version'和 'R_system_version'从这些字符串创建一个表示(如果 适合)允许强制和测试,组合, 比较,摘要(最小/最大),包含在数据框中, 下标和打印。这些类可以包含这样的向量 表示。