我正在使用 setMethod 来覆盖不同类对象的“摘要”函数。
最初,我使用了这种方法:
setMethod('summary', "class_1",
function(object, ...) {
#code for class_1 summary here...
}
)
setMethod('summary', "class_2",
function(object, ...) {
#code for class_2 summary here...
}
)
setMethod('summary', "class_3",
function(object, ...) {
#code for class_3 summary here...
}
)
...等每个班级。
但是,总共有 12 个不同的类,所以代码变得非常重复。为了避免这种重复,我创建了一个包含类名的函数:
all_classes = function() {
c("class_1", "class_2", "class_3") #and so on for each class
}
然后我使用了 lapply:
lapply(
1:length(all_classes()),
function(k)
setMethod('summary', all_classes()[k],
function(object, ...) {
#code here...
}
)
)
这行得通,但我想知道是否有更好的方法来实现我的目标,即为每个不同的类紧凑地创建一个“摘要”函数。
谢谢,
约翰。