如何根据自己的函数值或比较函数值对 R6 对象进行排序/排序?
我用矩形组成了一个小例子,我想按它们的面积排序:
library('R6')
Rectangle <- R6Class(
"Rectangle",
public = list(
initialize = function(width, height) {
private$width = width
private$height = height
},
get_area = function(){
private$width*private$height
}
),
private = list(
width = NULL,
height = NULL
)
)
array_of_rects = c( Rectangle$new(7,3), Rectangle$new(5,2), Rectangle$new(3,4))
我想array_of_rects
按功能给出的区域进行排序get_area()
。
我尝试了不同的方法,例如:
`>.Rectangle` <- function(e1, e2) { e1[[1]]$get_area() > e2[[1]]$get_area() }
`==.Rectangle` <- function(e1, e2) { e1[[1]]$get_area() == e2[[1]]$get_area() }
sort(array_of_rects)
但没有运气(我收到一条'x' must be atomic
错误消息)。
我试过没有[[1]]
(像这样e1$get_area()
),但这也没有用。
四处搜索,但没有找到任何导致我找到解决方案的东西。
有什么建议么?提前致谢!