gpt4 book ai didi

xml - 使用 R 将新数据附加到格式化的 xlsx 工作表

转载 作者:行者123 更新时间:2023-12-04 20:43:46 24 4
gpt4 key购买 nike

我正在尝试使用 xlsx包来帮助清理复杂的数据集,因为新数据进来了。我的目标是一个如下所示的工作流:

  • 将数据导入R,做一些编码数据清理。
  • 将数据写入 xls 文件,将其保存到保管箱文件夹
  • 非 R 知识的同事(和我自己)然后可以进行手动数据清理
  • 随着更多数据的输入,我重复第 1 步,然后将其附加到现有的 XLS 文件中,保留突出显示、注释或粗体等格式。

  • 最后,我很好奇我希望这是否适用于 LibreOffice(在我使用的 Linux 中)和 Excel(在同事使用的 Windows 中)。

    目前,我很难找到一种将数据附加到现有电子表格而不完全重写它(从而丢失任何格式)的方法。

    这是我希望能够使用预加载的 iris 执行的示例。数据集:
    #Import data, do some coded cleaning:
    data = iris[1:10,]
    data$Sepal.Ratio = with(data, Sepal.Length/Sepal.Width)
    data$Sepal.Length = NULL
    data$Sepal.Width = NULL
    data$Species = as.character(data$Species)

    #Write to excel...
    write.xlsx(data,file="ss.xls")

    #Manually make some changes
    system('soffice /path/to/ss.xls')

    (见截图)
    enter image description here
    enter image description here
    #Load and clean more data...
    data = iris[11:20,]
    data$Sepal.Ratio = with(data, Sepal.Length/Sepal.Width)
    data$Sepal.Length = NULL
    data$Sepal.Width = NULL
    data$Species = as.character(data$Species)

    #Append it to the existing spreadsheet, while preserving previous formatting
    ???
    append=TRUE选项在这里没有多大帮助,因为它旨在简单地将工作表添加到工作簿。

    或者,是否可以将电子表格的格式读入某种 R 对象,然后将其应用于重写的文件,执行如下操作?
    olddat = read.xls('/path/to/ss.xls')
    formatting <- someFunctionToExtractFormatting('/path/to/ss.xls')
    newdata = rbind(olddata,data)
    write.xlsx(newdata,file="ss.xls", FORMATTING=formatting)

    有一些类似的命令允许我从 R 定义格式,但我没有找到可以读取然后重写格式的命令

    最佳答案

    XLConnect package 能够做这种事情。看看? appendWorksheet .

    library(XLConnect)
    wb <- loadWorkbook( "ss.xlsx" )
    appendWorksheet( wb, data, sheet = "iris" ) # iris is the sheet you want to append data to
    saveWorkbook( wb )

    关于xml - 使用 R 将新数据附加到格式化的 xlsx 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25198862/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com