x $ data [i,j]中的错误<-值:要替换的项目数不是替换长度的倍数

时间:2019-05-02 09:45:07

标签: r

我刚刚升级到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 个答案:

答案 0 :(得分:1)

我不确定它来自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