我在写一个R包时定义了一个通用组函数时遇到了问题。在R包中定义组通用函数
这是一个相当小的例子:
setGroupGeneric('FooBarFunctions', function(x, y) NULL)
setGeneric('foo', group = 'FooBarFunctions', function(x, y) standardGeneric('foo'))
setGeneric('bar', group = 'FooBarFunctions', function(x, y) standardGeneric('bar'))
setMethod('foo', signature(x = 'ANY', y = 'ANY'),
function(x, y)
cat(sprintf('foo,ANY (%s),ANY (%s)\n', x, y)))
setMethod('bar', signature(x = 'ANY', y = 'ANY'),
function(x, y)
cat(sprintf('bar,ANY (%s),ANY (%s)\n', x, y)))
setMethod('FooBarFunctions', signature(x = 'character', y = 'ANY'),
function(x, y)
cat(sprintf('FooBarFunctions,character (%s),ANY (%s)\n', x, y)))
如果我将此代码粘贴到R端子,然后一切按预期工作:
> foo(1, 2)
foo,ANY (1),ANY (2)
> bar(1, 2)
bar,ANY (1),ANY (2)
> foo('a', 2)
FooBarFunctions,character (a),ANY (2)
> bar('a', 2)
FooBarFunctions,character (a),ANY (2)
然而,当我尝试建立这变成了一个包,我遇到了以下错误:
$ R CMD INSTALL .
* installing to library ‘~/R/x86_64-pc-linux-gnu-library/2.15’
* installing *source* package ‘anRpackage’ ...
** R
** preparing package for lazy loading
** help
No man pages found in package ‘anRpackage’
*** installing help indices
** building package indices
** testing if installed package can be loaded
**Error in .setupMethodsTables(generic) :
trying to get slot "group" from an object of a basic class ("NULL") with no slots**
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘~/R/x86_64-pc-linux-gnu-library/2.15/anRpackage’
我使用packag的默认输出已增加e.skeleton():
exportPattern("^[[:alpha:]]+")
进入空间文件
任何想法,我做错了吗?
有没有其他人能重现此问题? – Ash
没有人能够重塑这个? – Ash