умножение и деление объектов `unit` в` R` `grid` - PullRequest
1 голос
/ 16 октября 2019

При позиционировании графиков с библиотекой grid в R вам часто нужно делить или умножать длины:

> library(grid)
> x <- unit(3, "cm") + unit(2, "pt")
> z <- x / 2
Error in Ops.unit(x, 2) : operator '/' not meaningful for units

Как это сделать?

1 Ответ

1 голос
/ 16 октября 2019

Вот быстрый способ сделать это, он не содержит никакой проверки ошибок, и промежуточный шаг может зависеть от текущего открытого устройства (фактически, если нет открытого устройства, это откроет одно):

library(grid)

`/.unit` <- function (x, y) {
  x <- convertUnit(x, "pt")
  x <- as.numeric(x)
  unit(x / y, "pt")
}

x <- unit(3, "cm") + unit(2, "pt")

x / 2

возвращает:

[1] 43.6791338582677pt
...