У меня есть этот код ниже, который отлично работает с данными Iris, однако тот же код займет много времени, если вы загрузите его с большим набором данных. Я заметил, что проблема в l oop. Как я могу векторизовать l oop и сделать код быстрее.
rm (list = objects (all = TRUE))
today <- Sys.Date()
format(today, format="%d-%b-%Y")
#LIBRARIES
library(openxlsx)
library(readxl)
library(lubridate)
library(zoo)
library(stringr)
library(data.table)
#READ IN DATA SETS
DATA <- iris
#CREATE A NEW EXCEL WORKBOOK
wb <- createWorkbook()
modifyBaseFont(wb, fontSize = 10, fontColour = "black", fontName = "Book
Antiqua")
#ADD WORKSHEET
addWorksheet(wb,"IRIS DATA",zoom = 92,tabColour = "red2")
#WRITE DATA FUNCTION
WRITEDATAFUNCTION <- function(data,sheet,stRow,stCol){
writeData(wb, paste0(sheet), data,startRow = stRow, startCol = stCol)
writeDataTable(wb, paste0(sheet), data, startRow = stRow, startCol =
stCol,tableStyle =
"none",withFilter = FALSE)
style1 <- createStyle(halign = "CENTER",numFmt ="#,###",fontColour =
"blue")
**for(i in stRow:(stRow+nrow(data))){
addStyle(wb, paste0(sheet), style1, rows = i, cols=(stCol):
(stCol+ncol(data[i,])), gridExpand = TRUE,
stack = TRUE)
}**
}
WRITEDATAFUNCTION(DATA,"IRIS DATA",1,1)
saveWorkbook(wb, file = paste("BBBBBB","-",Sys.Date(),".xlsx"), overwrite =
TRUE)