假设我有一个简单的类,有一个方法:
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
通常有效,但是当我把这个类放在一个列表中时就失败了。
答案 0 :(得分:1)
custom_list[1]
是一个列表。您需要第一个元素,需要使用custom_list[[1]]
。研究help("[")
。