【发布时间】:2017-05-20 14:56:07
【问题描述】:
R 软件包的版本号类似于 1.97.1。我可以用
查看版本号 packageVersion("data.table")
在我的电脑上返回 1.10.0。
我要做的是检查 data.table 版本是否比 1.9.7 更新,因为 1.9.7 之后的版本具有我的代码需要的功能。我已经尝试将版本拆分为其组成部分并以不同的方式评估它们,但我还没有找到任何可靠的方法来做到这一点。 非常感谢任何建议。
【问题讨论】:
-
utils包有一个compareVersion函数。 -
或者甚至只是
if(packageVersion("data.table") > "1.9.7") { print("OK!\n") } -
@Benjamin - 你应该这样回答。我以前从未听说过这个功能 - 看起来很有用。
-
@G5W -
"1.10.0" > "1.9.8"返回FALSE。而utils::compareVersion("1.10.0","1.9.8")返回1表示1.10.0是更高版本 -
@thelatemail 我认为您正在进行字符串比较。对我来说,
packageVersion("data.table")给出“1.10.0”,packageVersion("data.table") > "1.9.8"给出 true