Как я могу отсортировать / упорядочить объекты 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()
), но это тоже не сработало.
Обыскал, но убежал 'не нашел ничего, что привело бы меня к решению.
Есть предложения?Заранее спасибо!