在packageVersion上使用比较运算符

时间:2014-03-17 13:15:39

标签: r

我正在为R包编写一些代码,需要在创建文件时将当前包版本与包版本的记录进行比较。基本上,如果文件是由旧版本的包创建的,则需要检查文件格式的更改。我现在得到的是:

file_version<-get_file_version() # evals to a numeric like 100 or 302
pkg_version<-as.numeric(paste0(unlist(packageVersion('my.package')), collapse=""))

if (file_version < pkg_version) upgrade_fileformat() # checks and performs updates

所以,这将有效,但似乎应该有一个更简洁的方法来做这个没有函数三明治分配给pkg_version变量。有没有人知道我所描述的更好的比较方法?

1 个答案:

答案 0 :(得分:1)

而不是录制数字,录制packageVersion("my.package"),然后在强制读取package_version()时,以便比较运算符按预期工作。

ver <- as.numeric_version("3.10.1")
ver < "3.11"
# [1] TRUE
ver > "3"
# [1] TRUE