r - S3 通用方法在包中不起作用
问题描述
我有一个包,其中有几个通用方法。它们都是 S3 泛型,具有您在其中看到的典型结构:
func_one <- function(x, ...) { UseMethod("func_one") }
func_one.data.frame(function(x,...) { dim(x) }
func_one.matrix(function(x, ...) {dim(x) }
在我的 NAMESPACE 文件中,我尝试仅导出顶部函数(func_one),但是当我在 data.frame 或矩阵上运行 func_one 时,它会出错。然后我继续在 NAMESPACE 中添加了 func_one.data.frame 和 func_one.matrix,但这仍然没有做任何事情。
需要明确的是,这些通用方法会在 R 中找到,但不是作为包。任何帮助都会很棒。:)
这是命名空间文件:
S3method(func_one,data.frame)
S3method(func_one,matrix)
S3method(func_one,tbl_df)
export(func_one)
这是实际函数文件(func.R)的示例
#' @export
func_one <- function(data, ...) {
UseMethod("func_one")
}
#' @export
func_one.data.frame <- function(data, ...) {
dim(x)
}
#' @export
func_one.matrix <- function(data, ...) {
dim(x)
}
然后在 R 中安装 R 包并尝试使用它后,我收到 UseMethod 错误。
解决方案
推荐阅读
- php - 如何列出 PHP 中的所有类并显示它们的自定义值?
- c++ - MFC重绘窗口在油漆应用问题
- javascript - 如何使用 Typescript 处理 204 状态并获取?
- android - 删除 viewPager2 中的片段使用 FragmentStateAdapter,但仍显示
- android - 如何振动安卓手机,直到我点击停止按钮?
- shortest-path - 访问无向加权图所有节点的最短距离
- algorithm - 2 ^ O(log log n) = O(log n) 吗?
- ruby-on-rails - nil 的未定义方法“src”:NilClass Rails LinkThumbnailer
- c++ - 标识符“V”未定义
- c - 在 Raspberry Pi 上读取 PPM 信号