вертикальное выравнивание gridExtra tableGrob - PullRequest
0 голосов
/ 07 марта 2019

Решено - обязательно отправьте список для счастья! Спасибо, Батист, и ты снова в восторге!

Несколько вопросов было задано по этому поводу, и это, кажется, принятый ответ от Батиста .

Когда я использую функцию, предоставленную в этом ответе:

justify <- function(x, hjust="center", vjust="center", draw=TRUE){
  w <- sum(x$widths)
  h <- sum(x$heights)
  xj <- switch(hjust,
               center = 0.5,
               left = 0.5*w,
               right=(unit(1,"npc") - 0.5*w))
  yj <- switch(vjust,
               center = 0.5,
               bottom = 0.5*h,
               top=(unit(1,"npc") - 0.5*h))
  x$vp <- viewport(x=xj, y=yj)
  if(draw) grid.draw(x)
  return(x)
}

tgt <- lapply(myplot, justify, vjust="top", draw=FALSE)

Я получаю следующую ошибку:

5.stop("both operands must be units")
4.Ops.unit(unit(1, "npc"), 0.5 * h)
3.FUN(X[[i]], ...)
2.lapply(myplot, justify, vjust = "top", draw = FALSE)

Идеи о том, как это исправить? Я подозреваю, что я работаю с обновленным пакетом "unit", так как большинство людей, принявших этот ответ, делали это 2+ года назад.

Спасибо!

...