使用R中的ReporteRs包我想将带有彩色单元格的数据框导出到word文档中的表格。
按照本网站提供的代码和说明进行操作:http://www.sthda.com/english/wiki/add-a-table-into-a-word-document-using-r-software-and-reporters-package
我试图为我准备的表格中的单元格添加颜色。但我无法在我导出的表格中的单元格中获得正确的颜色。
下面的代码有一个测试数据框,并且还安装了该软件包。 代码生成一个带有表格的word.doc文件,但单元格中的颜色是错误的。 word文档中表格中单元格中的颜色与单元格中的值不匹配。我怀疑我已经设定了“休息时间”。不正确,但我不确定如何正确设置它们以获得我想要的表格。
我的输入数据框的值为1到5,我希望单元格根据其值进行着色。 即,值为1的单元格应为紫色,值为2的单元格应为蓝色,值为3的单元格应为深绿色,值为4的单元格应为绿色,值为5的单元格应为黄色。
#get the packages required
install.packages("ReporteRs")
library(ReporteRs)
# set working directory
setwd ("/your_own_working_dir/")
#make some test data
c2 <- c(1,2,3,5)
c3 <- c(2,2,3,2)
c4 <- c(4,3,2,1)
#bind the data in to a dataframe
cc <- t(cbind(c2,c3,c4))
dd <- as.data.frame(cc)
#turn the dataframe into a matrix
ee <- matrix(as.numeric(unlist(dd)),nrow=nrow(dd))
#define colors
#col =c("#FB0000", "#FB7F00", "#FBF000", "#6EFF4C")
col =c("purple", "blue", "darkgreen", "green", "yellow")
mycut = cut(ee,
#breaks = c(-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1),
breaks = c(1, 2, 3, 4 ,5),
include.lowest = TRUE, label = FALSE )
color_palettes = col[mycut]
#see the colors in the color palette
unique(color_palettes)
corrFT = FlexTable( ee, add.rownames = TRUE )
corrFT = setFlexTableBackgroundColors(corrFT,
j = seq_len(ncol(ee)) + 1,
colors = color_palettes )
#show_col(color_palettes) #install from "scales" package
#make an empty doc
doc <- docx()
corrFT = setFlexTableBorders( corrFT
, inner.vertical = borderProperties( style = "dashed", color = "white" )
, inner.horizontal = borderProperties( style = "dashed", color = "white" )
, outer.vertical = borderProperties( width = 2, color = "white" )
, outer.horizontal = borderProperties( width = 2, color = "white" )
)
doc <- addFlexTable( doc, corrFT)
writeDoc(doc, file = "r-reporters-word-document-correlation.docx")