我正在编写一个库来使用名为“Data”的 S3 类,我需要分配子集运算符 [.Data
在相关的 R 文件中,我有:
`[.Data` <- function(x, condition) {
## body of function
}
安装该库没有问题,但将其附加到交互式 R session 中时,函数 [.Data
找不到。如果我只是将上述 R 文件中的代码复制并粘贴到终端中,该函数就会被定义并按预期工作。
此外,如果我将资源 R 文件中的函数名称从 [.Data
更改为标准名称如 fun
,可以在将库附加到 R session 中时找到该函数。因此,我认为安装库时整理文件没有问题。
我还尝试使用更明确的 assign
函数而不是 <-
没有成功。问题似乎仅限于我对函数的命名,但由于 S3 限制,我无法在不更改功能的情况下更改函数的名称。
最佳答案
你应该尝试:
methods('[') # will be big list
您可能没有“导出”函数名称。或者您可能需要在包代码中执行此操作:
S3method('[', "Data") # See 1.5.2 Registering S3 methods in "Writing R Extensions"
如果这不是问题,请阅读更多有关如何使用 UseMethod
创建其他通用函数的信息。
关于r - 分配 S3 子集运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666657/