在列表中存储自定义类的正确方法是什么?

时间:2014-03-24 05:31:27

标签: r

假设我有一个简单的类,有一个方法:

setClass(Class="test_class",representation=representation(A="numeric"))
setGeneric (name= "some_method",def=function(object,B){standardGeneric("some_method")})
setMethod(f="some_method", signature="test_class",definition=function(object,B){
  object@A<-B
  return(object)
})

我的目标是将许多这些类存储在列表中。我输入以下代码来存储1 test_class并使用其方法。

empty_class<-new("test_class")
custom_list<-list(empty_class)
custom_list[1]<-some_method(custom_list[1],2)

不幸的是,R给了我以下错误:

Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘some_method’ for signature ‘"list"’

我做错了什么,我应该做些什么呢?我不明白为什么some_method通常有效,但是当我把这个类放在一个列表中时就失败了。

1 个答案:

答案 0 :(得分:1)

custom_list[1]是一个列表。您需要第一个元素,需要使用custom_list[[1]]。研究help("[")