[英]Append new data to formatted xlsx worksheet using R
我試圖使用xlsx
包來幫助清理復雜的數據集(隨着新數據的到來)。我的目標是使工作流程如下所示:
最后,我很好奇是否希望它能跨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')
(請參見屏幕截圖)
#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
軟件包能夠執行此類操作。 看看? appendWorksheet
? appendWorksheet
。
library(XLConnect)
wb <- loadWorkbook( "ss.xlsx" )
appendWorksheet( wb, data, sheet = "iris" ) # iris is the sheet you want to append data to
saveWorkbook( wb )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.