AzureML 中的包使用:ggplot2 和 ggrepel

Package usage in AzureML: ggplot2 and ggrepel

我在 Azure ML 中有一个使用函数 ggrepel 的代码。该功能需要软件包 ggplot2 的版本 2.0.0。当我尝试使用它时出现错误:

Error 0063: The following error occurred during evaluation of R script:
---------- Start of error message from R ----------
package 'ggplot2' 1.0.0 was found, but >= 2.0.0 is required by 'ggrepel'

所以,我所做的是:

  1. 更新了我本地版本的 R 包 ggplot2(是否有用于检查包版本的命令?);
  2. 获取与 ggplot2 相关的文件夹,并将其放入我传递给 Azure 的 zip 文件中。所以 x.zip 将包含泛型函数,然后是 ggrepel.zip 和 ggplot2.zip.

最后我写了:

install.packages("src/ggplot2.zip",lib = ".", repos = NULL, verbose = TRUE)
install.packages("src/ggrepel.zip",lib = ".", repos = NULL, verbose = TRUE)
library(ggrepel, lib.loc=".", verbose=TRUE)
library(ggplot2, lib.loc=".", verbose=TRUE)

它似乎适用于 ggrepel,但不适用于 ggplot,因为我遇到了开头显示的相同问题。好像系统看到的不是更新包,而是Azure ML默认的ggplot2。

最后我解决了添加一个额外的包。问题在于您必须检查错误日志,而不仅仅是错误输出(不会插入您需要的所有内容)。最后我是这样解决的:

install.packages("src/scales_0.4.0.zip" ,lib = ".", repos = NULL, verbose = TRUE)
install.packages("src/ggplot2_2.1.0.zip",lib = ".", repos = NULL, verbose = TRUE)
install.packages("src/ggrepel.zip"      ,lib = ".", repos = NULL, verbose = TRUE)

library(scales,  lib.loc=".", verbose=TRUE)
library(ggplot2, lib.loc=".", verbose=TRUE)
library(ggrepel, lib.loc=".", verbose=TRUE)
...