使用R处理数据时,是否可以将宏保存在.xlsm文件中?
我正在使用“ readxl”包中的“ read_excel”功能将xlsm数据读入R中,进行处理,然后使用“ openxlsx”包中的“ write.xlsx”功能将其导出回Excel。
但是,write.xlsx函数不允许输出为.xlsm文件。
我尝试了另一种方法,如Populating Excel Macro-enabled cells from R/outside environment中所述,使用“ xlsx”包中的loadWorkbook和saveWorkbook函数。
但是,这一次,我的数据处理代码不再起作用,产生了一个错误,“ apply(df,1,setfunction)中的错误:dim(X)必须具有正长度”。
使用openxlsx和readxl软件包时,我的代码工作正常,除了所有宏都在输出中丢失之外。
使用R处理数据时,是否可以将宏保存在.xlsm文件中?
df<-loadWorkbook("data.xlsm") # originally was df<read_excel("data.xlsm")
setfunction <- function (x) {
set1 <- strsplit(x[[2]], split=",")
set2 <- strsplit(x[[3]], split=",")
trimset1 <- sapply(set1[[1]], str_trim)
trimset2 <- sapply(set2[[1]], str_trim)
set3 <- setdiff(trimset1, trimset2)
newset3 <- paste(set3, collapse = ', ')
}
df$newcol <- apply(df, 1, setfunction)
saveWorkbook("data2.xlsm") # originally was write.xlsx(df, file = data2.xlsx")