0

我是在 R 中创建类和方法的新手,并且遇到了一个我没有找到太多文档的问题。我创建了一个类“DataImport”,并尝试添加以下方法:

DataImport$methods(reducedImport <- function(filePathOne, dataFrame) 
  {

  }
)

当我运行此代码时,我收到以下错误:

Error in DataImport$methods(reducedImport <- function(filePathOne,  : 
  Arguments to methods() must be named, or one named list

我可以直接在这个方法之前添加一个方法,它工作得很好,但是这个没有。我不太明白为什么会这样或如何解决它。

4

1 回答 1

1

正如 Dason 在评论中提到的,您的问题在于分配。让我们创建一个简单的示例:

c1 = setRefClass("c1", fields = list( data = "numeric"))
c1$methods(m1 = function(a) a)

现在快速测试:

x = c1$new(data=10)
x$m1(1)

然而,

R> c1$methods(m2 <- function(a) a)
Error in c1$methods(m2 <- function(a) a) : 
  Arguments to methods() must be named, or one named list

给出你看到的错误。这样做的原因是<-运营商与运营商略有不同=。这通常无关紧要(但在这里确实如此)。

于 2013-04-16T07:39:42.197 回答