2017-03-20 257 views
-1

我正在尝试为客户端同步Dev和Prod环境之间的软件包。 为此,我需要查找两个环境中安装的所有软件包。R软件包安装的版本号

要检查安装的所有软件包我跑以下命令:

installed.packages(fields=c("Package","Version")) 

然而,当我运行这个命令我没有得到的包的版本。 我刚刚得到R Installed的版本。

见Screenhshot: enter image description here

另外,如果我尝试运行下面的命令,然后它会给我个人包版本:

packageDescription("packageName")$Version 

有人能帮助我在这里用的命令,使我可以通过它们各自的版本获得R(通过Putty命令行)安装的所有软件包,以便我可以在Excel中复制这些值并对它们进行比较?

+1

你的截图方便割去表头,将已经明确,你展示了“构建”版本,而不是包的版本(这也是在那里,你只是不显示在它截图)。 –

+0

你好对不起,我coudnt显示它的截图,但相信我这是R的构建,而不是包版本 –

+0

是的,这是我的评论说的。 R软件包版本显示在表中的其他位置。向上滑动。 –

回答

3

installed.packages将始终返回Version列中的软件包版本。

pkgs <- installed.packages() 
vers <- pkgs[, "Version"] 

这将是一个字符向量,如果您想比较版本,这是一个不方便的字符向量。 package_version函数将像“3.3.2”这样的字符串转换为更适合该任务的对象。

package_version(vers["stats"]) 
# '3.3.2' 

package_version(vers["stats"]) > package_version("3.1") 
# TRUE 

package_version(vers["stats"]) == packageVersion("stats") # note function names 
# TRUE 
+0

当我跑得installed.packages我得到以下错误: 功能(lib.loc = NULL,优先级= NULL,非缓存= FALSE,田= NULL, 子体系= .Platform $ r_arch) { 如果(如果(!is.null(priority)){(如果(is.character(priority))) stop是字符或NULL“) –