Ошибка в x $ data [i, j] <- value: количество заменяемых элементов не кратно длине замены - PullRequest
0 голосов
/ 02 мая 2019

Я только что обновился до R-3.6.0, и внезапно получаю эту ошибку при превращении матрицы в кадр данных при создании гибкой таблицы.Я никогда раньше не сталкивался с этой ошибкой в ​​коде, может быть, кто-то может увидеть, что пошло не так?

Так что это один пример:

doc201 <- read_docx(path = "Style.docx")
Header <- matrix("",1,3)
Header[1,1] <- paste("Blabla ")
Header[1,2] <- paste("Version:", "1")
Header[1,3] <- format(Sys.Date(), format="%d-%m-%Y")

Head <- flextable(as.data.frame(Header), cwidth = c(3.2,1,2.5))
Head <- delete_part(x = Head, part = "header")
Head <- align(Head, i = 1, j = 1, align = "left") 
Head <- fontsize(Head, size = 11, part = "body")
Head <- bold(Head, bold = TRUE, part = "body")
Head <- font(Head, i = 1, j = (1:3), "Times New Roman", part = "body")

doc201 <- body_add_flextable(doc201, value = Head, pos = "before")

Я заметил ошибку при добавлении в мой документ,но я вижу, что это уже происходит в

Head <- flextable(as.data.frame(Header), cwidth = c(3.2,1,2.5))
Head

Мой код не изменился, и мне требуются () те же пакеты, что и раньше - я проверил, что они все установлены.Но возможно я удалил кое-что R, связанное с несчастным случаем.Я просто не могу понять, чего не хватает.

1 Ответ

1 голос
/ 06 мая 2019

Я не уверен, что это исходит из R 3.6.0. Однако вы можете получить то, что вы хотите, используя width(). Вы также можете использовать свой код как есть, но вам придется обновить flextable до версии > 0.5.2.

library(flextable)
Header <- matrix("",1,3)
Header[1,1] <- paste("Blabla ")
Header[1,2] <- paste("Version:", "1")
Header[1,3] <- format(Sys.Date(), format="%d-%m-%Y")

# you can use one of the following two solutions ----

# solution 1, require flextable > 0.5.2
Head <- flextable(as.data.frame(Header), cwidth = c(3.2,1,2.5))

# solution 2
Head <- flextable(as.data.frame(Header))
Head <- width(Head, width = c(3.2,1,2.5))


# below code is the same than before
Head <- delete_part(x = Head, part = "header")
Head <- align(Head, i = 1, j = 1, align = "left") 
Head <- fontsize(Head, size = 11, part = "body")
Head <- bold(Head, bold = TRUE, part = "body")
Head <- font(Head, i = 1, j = (1:3), "Times New Roman", part = "body")

result

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...