2013-03-27 8 views
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 

我能直接在这个之前添加一个方法,它工作正常,但这不是。我不太明白为什么会这样或者如何解决这个问题。

+0

请仔细阅读本:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Dason 2013-03-27 17:27:21

+0

谢谢你的回复。我不确定我是否理解这个建议。我不使用任何dataframes或数据,除了上述的,我试图运行看到的方法的唯一代码类定义,DataImport < - setRefClass(“DataImport”,字段= C(“的startDate”)) 。这个类的定义,并在原来的职位的方法应是一个类,而我只是想定义一个类,这样我可以用它在数据帧上,并在今后的文件路径。当我运行这两个代码块时,我得到了我提到的错误。我误解了R中类的使用吗? – tjnel 2013-03-27 17:36:52

+0

你应该在你的问题中包含该类的定义。 – Dason 2013-03-27 17:44:12

回答

1

由于达诚在评论中提到,你的问题是与分配。让我们创建一个简单的例子:

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 

让你看到错误。这样做的原因是,<-运营商与运营商=slightly different。这通常不重要(但它在这里)。

相关问题