首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R和openxls,尝试创建多个xlsx时出错。

R和openxls,尝试创建多个xlsx时出错。
EN

Stack Overflow用户
提问于 2019-03-27 17:58:29
回答 1查看 75关注 0票数 0

我试图创建一个函数,它接受两个文件,比如x和y,并返回一个xls书籍,这个函数将创建多个带有从x文件中选择的名称的工作表,x将如下所示

代码语言:javascript
复制
sol
   Orden
1   Z169
2   Z170
3   Z175

现在,在创建了工作表之后,它将编写从第二个( y)文件中获取的数据,y文件如下所示

代码语言:javascript
复制
base   
     Orden Dependencia
1    Z169    TRæNSITO
2    Z170    TRæNSITO
3    Z171    TRæNSITO
4    Z172    TRæNSITO
5    Z173    POLICIA
6    Z174    TRæNSITO
7    Z175    POLICIA

据我所知,我有这段代码(它是最小的、完整的、可验证的形式,还是不是?)

代码语言:javascript
复制
autoform <- function(x,y){

## create wordbook
wb <- createWorkbook()

## create work sheets   
for (i in 1:length(x[,1])){
    if(isTRUE(x[i,1] %in% y[,1])){  
        addWorksheet(wb, x[i,1])

##editing the sheet 
        writeData(wb,  x[i,1], y[i,2], startCol = 8, startRow = 6,rowNames = TRUE )
        }
    }

## save file

saveWorkbook(wb, "marth/javi/supertest.xlsx", overwrite = TRUE)
}

当我尝试使用autoform(x,y)时,我得到了以下错误:

代码语言:javascript
复制
> autoform(sol, base)
Error in nchar(sheetName) : 'nchar()' requires a character vector

我在跳别人可以解释为什么这个错误和如何解决它,坦克u为阅读。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-27 19:22:37

我自己做的,问题是我的指数和y变量不一样,所以我需要另一个循环,这是代码工作的结果。

代码语言:javascript
复制
autoform <- function(x,y){

    ## create wordbook
    wb <- createWorkbook()
    x<-as.matrix(x)
     y<-as.matrix(y)
    ## create work sheets   
    for (i in 1:length(x[,1])){
        if(isTRUE(x[i,1] %in% y[,1])){  
            addWorksheet(wb, x[i,1])
            for (j in 1:length(y[,1])){
            if(isTRUE(x[i,1] == y[j,1])){
    ##editing the sheet 
            writeData(wb, x[i,1], y[j,2], startCol = 8, startRow = 6,rowNames = TRUE )
            }
        }
}
}
    ## save file

    saveWorkbook(wb, "marth/javi/supertest.xlsx", overwrite = TRUE)
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55383750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档