Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R处理数据时在xlsm文件中保留宏_R_Excel - Fatal编程技术网

使用R处理数据时在xlsm文件中保留宏

使用R处理数据时在xlsm文件中保留宏,r,excel,R,Excel,在使用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]],

在使用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")
我使用“readxl”包中的“read_excel”函数将xlsm数据读入R,对其进行处理,然后使用“openxlsx”包中的“write.xlsx”函数将其导出回excel

但是,write.xlsx函数不允许输出为.xlsm文件

我尝试了另一种方法,使用“xlsx”包中的loadWorkbook和saveWorkbook函数,如中所建议的

然而,这一次,我的数据处理代码不再工作,产生了一个错误,“应用中的错误(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")

df您可能想尝试以下链接:是的,尝试过,您给出的链接与我在问题中给出的链接相同。R返回错误“应用中的错误(df,1,setfunction):dim(X)必须具有正长度”。