如何在 R 中导出带有突出显示和注释的 Excel 文件?

问题描述 投票:0回答:1

我想知道是否有一种方法可以将 R 中的数据框/tibble 导出为 .xlsx 文件,并从 R 控制台本地添加突出显示和注释,而不是在 Excel 中进行后处理。

我有一个数据集,其中包含按多个个体的原始形态测量数据的平均值计算的分箱数据,用于对应分析。下面是虚拟示例。

df<-data.frame(
taxon=c(Taxon1,Taxon2,Taxon3),
blerp=c(1,1,NA),
herp=c(3,1,1),
derp=c(2,NA,2))

除了直接根据原始数据计算的输入值外,还将使用多种方法之一对缺失值进行插值或估计近似值,例如输入密切相关物种的值。

在我的领域中,此类分析的标准做法是生成一个数据表,其中估计值具有基于估计值的颜色编码的单元格,然后在注释中提供理由,解释如何生成估计值。对于提供的虚拟数据集,结果如下所示。

This is what I would like the dummy dataset to look like

然而,之前的作者是通过手动输入估计值和注释来做到这一点的;因为我的数据集更大,所以我想使用 R 来完成此操作。

我理想的做法是将两个单独的数据帧导出为 .xlsx 文件。一种仅包含直接从测量材料计算出的数据,另一种包含针对不同方法用不同颜色突出显示的插值,并在适当的情况下标记注释。我知道如何从 R 导出 .xlsx 文件 (

write.xlsx
),但不清楚如何从 R 控制台添加突出显示和注释。

我认为可能有效的一种方法是使用某种函数将原始电子表格/数据框 A 中的所有单元格与电子表格/数据框 A' 进行比较,然后两个版本之间存在差异的任何单元格都将突出显示。对于不同的插值方法,可以多次执行此操作(即黄色的 A 和 A' 之间的差异,橙色的 A' 与 A'' 之间的差异)。但是,我不知道如何用代码来完成此任务。我也很想知道有没有办法添加评论。

如果可能的话,我想通过机器学习来进行格式化和注释,因为分析被格式化为 RMarkdown 文件。如果我必须输入所有估计值并在 Excel 后处理中手动对其进行标记,则意味着每次必须调整值或添加新行时我都必须手动重做文件。同样,由于分析是在 R Markdown 中进行的,如果我无法在 R 中对文件进行本地注释,这将意味着我不能仅使用单个 RMarkdown 文件运行分析,我将必须运行一个 RMarkdown 文件来生成初始数据集,然后在 Excel 中使用插值手动标记它,然后将该文件放入第二个 RMarkdown 文档中以运行对应分析,这对于可复制性来说似乎效率不高。

r excel formatting export-to-excel data-annotations
1个回答
0
投票

可以使用

openxlsx
包添加格式和注释。例如:

library(openxlsx)

wb <- createWorkbook()
addWorksheet(wb, "Sheet1")
writeData(wb, 1, df)

apply(which(is.na(df), arr.ind = T), MARGIN = 1, FUN = function(cell) {
  writeData(wb, 1, 
    sample(1:3, 1),
    startRow = cell['row']+1, startCol = cell['col']
  )
  addStyle(wb, 1,
    createStyle(fgFill = 'orange'),
    rows = cell['row']+1, cols = cell['col']
  )
  writeComment(wb, 1, col = cell['col'], row = cell['row']+1,
    comment = createComment("Filled in with random number")
  )
}) %>% invisible

openXL(wb)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.