【发布时间】:2019-08-13 09:18:00
【问题描述】:
我有一个表格,其中包含根据年份(列)的物种(行)的存在(+)。
我们的想法是用斜体显示每个物种的拉丁名称,并根据物种的特定特征为线条着色。不幸的是,我不能同时做这两件事。
我设法得到的第一件事是为每一行设置正确的颜色:
library(dplyr)
library(flextable)
mydata <- data.frame(Espèce = c("Acipenser Sturio (L. 1758) Esturgeon européen",
"Alosa alosa (L.1758) Alose vraie", "Alosa fallax (Lac. 1803) Alose feinte",
"Anguilla anguilla (L. 1758) Anguille", "Lampetra fluviatilis (L. 1758) Lamproie de rivière",
"Liza ramada (Risso 1826) Mulet porc") ,
`00` = c("", "+", "+", "+", "", "+"),
`01` = c("", "+", "+", "+", "+", "+"))
flextable(mydata) %>%
color(color = c(rep("firebrick2",2),rep("black",3),rep("dodgerblue3",1)))
当我尝试添加斜体字体(左括号前的文本)时,斜体字失去了之前定义的颜色:
mydata %>%
flextable(col_key=c("dummy_col",names(mydata)[-1])) %>%
color(color=c(rep("firebrick2",2),rep("black",3),rep("dodgerblue3",1)), part="body")%>%
display(col_key = "dummy_col", pattern = "{{id_}} ({{sciname_}}",
formatters = list(id_ ~ unlist(strsplit(paste(mydata$Espèce[1:(length(mydata$Espèce))]), split="\\("))[seq(1,length(unlist(strsplit(paste(mydata$Espèce[1:(length(mydata$Espèce))]), split="\\("))),2)],
sciname_ ~ unlist(strsplit(paste(mydata$Espèce[1:(length(mydata$Espèce))]), split="\\("))[seq(2,length(unlist(strsplit(paste(mydata$Espèce[1:(length(mydata$Espèce))]), split="\\("))),2)]),
fprops = list(id_ =fp_text(italic = TRUE))) %>%
color(j="dummy_col", color=c(rep("firebrick2",2),rep("black",3),rep("dodgerblue3",1)))
您有什么建议可以同时获取两者,即正确颜色的斜体文本吗?
【问题讨论】: