【问题标题】:Error message in R: "Arguments to methods() must be named, or one named list"R中的错误消息:“方法()的参数必须命名,或者一个命名列表”
【发布时间】:2013-03-27 17:17:24
【问题描述】:

我是在 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

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

【问题讨论】:

  • 感谢您的回复。我不确定我是否理解这个建议。我没有使用任何数据帧或数据,除了上面看到的我试图运行的方法之外,唯一的代码是类定义,DataImport
  • 您应该在问题中包含该类的定义。
  • 我不使用引用类,但在我看来,您应该使用= 而不是&lt;-。这可能是导致错误的原因。

标签: r class methods reference-class


【解决方案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

给出你看到的错误。原因是&lt;- 运算符是slightly different 来自= 运算符。这通常无关紧要(但在这里确实如此)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 2012-01-26
    相关资源
    最近更新 更多