下面两行代码中的函数部分相同,如何使用一个 setMethod 进行设置?像签名(“三角形|正方形”)。谢谢你。

setMethod("sides", signature("Triangle"), function(object) 3)
setMethod("sides", signature("Square"), function(object) 3)

最佳答案

通常的做法是

.sides_body = function(object) 3
setMethod("sides", "Triangle", .sides_body)
setMethod("sides", "Square", .sides_body)

除非存在类关系并且类之间的定义相同
setClass("Shape")
setClass("Triangle", contains="Shape")
setClass("Square", contains="Shape")
setClass("Circle", contains="Shape")
setMethod("sides", "Shape", function(boject) 3)
setMethod("sides", "Circle", function(object) Inf)

关于r - R中两个不同对象签名的setMethod,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31392715/

10-12 19:10