在 R 中修改包函数 (read.dcf)
Modify a package function (read.dcf) in R
我有一个 R 脚本调用 MiniCRAN 中的 updatePackages() 函数,MiniCRAN 又调用这些函数:
updatePackages (miniCRAN) -> oldPackages (miniCRAN) -> pkgAvail
(miniCRAN) -> read.dcf (base)
我希望创建我的自定义 read.dcf 函数,稍微修改原始 read.dcf 函数,这样当它是 运行 时,pkgAvail 函数将调用我的自定义 read.dcf而不是默认的 read.dcf 函数。在 运行 启用 updatePackages 函数之前,我已经在我的脚本中定义了该函数:
read.dcf <- function(file,...) {
my modified code }
...
library(miniCRAN);
updatePackages();
但是当我 运行 脚本时,它仍然给我同样的错误,提示原始 read.dcf 函数仍在被调用。我是否必须在我的代码中做任何额外的事情来确保这个特定的 read.dcf 函数被 oldPackages 调用?让这项工作最简单的方法是什么?
谢谢
结果是 pkgAvail 调用了 utils::available.packages,我需要修改 utils.available.packages。所以我下载了 miniCRAN 项目,在 pkgDep.R 文件中定义了一个名为 available_packages 的新函数,其中包含 pkgAvail 函数,修改了 pkgAvail 函数,使其调用我自己的 available_packages,然后“clean and重建”新的 miniCRAN 项目。
我有一个 R 脚本调用 MiniCRAN 中的 updatePackages() 函数,MiniCRAN 又调用这些函数:
updatePackages (miniCRAN) -> oldPackages (miniCRAN) -> pkgAvail (miniCRAN) -> read.dcf (base)
我希望创建我的自定义 read.dcf 函数,稍微修改原始 read.dcf 函数,这样当它是 运行 时,pkgAvail 函数将调用我的自定义 read.dcf而不是默认的 read.dcf 函数。在 运行 启用 updatePackages 函数之前,我已经在我的脚本中定义了该函数:
read.dcf <- function(file,...) { my modified code }
...
library(miniCRAN); updatePackages();
但是当我 运行 脚本时,它仍然给我同样的错误,提示原始 read.dcf 函数仍在被调用。我是否必须在我的代码中做任何额外的事情来确保这个特定的 read.dcf 函数被 oldPackages 调用?让这项工作最简单的方法是什么?
谢谢
结果是 pkgAvail 调用了 utils::available.packages,我需要修改 utils.available.packages。所以我下载了 miniCRAN 项目,在 pkgDep.R 文件中定义了一个名为 available_packages 的新函数,其中包含 pkgAvail 函数,修改了 pkgAvail 函数,使其调用我自己的 available_packages,然后“clean and重建”新的 miniCRAN 项目。