R:同名的两个函数和 :: 不起作用

R: two functions with the same name and :: doesn't to work

我正在尝试使用 raster 包的 as.raster 函数,但是已经有一个函数与在 grDevices 包中同名。因此,我使用 :: 运算符来区分两者,但它似乎不起作用。有人可以解释我哪里出错了吗?下面的最小工作示例:

library("raster")
a <- matrix(1:15, ncol=3)
raster::as.raster(a)

输出:

Error in rgb(tx, tx, tx, maxColorValue = max) : 
color intensity 6, not in [0,1]

此错误消息适用于 grDevices 版本的函数。

您似乎试图将 class matrix 的变量转换为 class RasterLayer 的变量。命令 as.raster 当它接收到矩阵时,假定您使用的是 grDevices-package 版本,因为 raster-package 版本旨在接受 RasterLayer 对象。

在您的示例中,只需使用 raster(a)