R 和 openxls,尝试创建多个 xlsx 时出错
R and openxls, getting error trying to create several xlsx
我正在尝试制作一个函数,该函数接受两个文件,比如 x 和 y,以及 returns 一本 xls 书,该函数将创建许多使用从 x 文件中选择的名称的工作表,x 将看起来像这样
sol
Orden
1 Z169
2 Z170
3 Z175
现在,创建工作表后,它将写入从第二个(y)文件中获取的数据,y 文件如下所示
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
据我所知,我有这段代码(是最小的、完整的、可验证的形式,还是不是?)
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) 时出现此错误:
> autoform(sol, base)
Error in nchar(sheetName) : 'nchar()' requires a character vector
我希望有人能解释我为什么会出现这个错误以及如何解决它,感谢您阅读
请大家阅读,我自己做的,我认为问题是索引 i 与我在 y 变量中需要的不一样,所以我需要另一个 for 循环这是代码工作
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)
}
我正在尝试制作一个函数,该函数接受两个文件,比如 x 和 y,以及 returns 一本 xls 书,该函数将创建许多使用从 x 文件中选择的名称的工作表,x 将看起来像这样
sol
Orden
1 Z169
2 Z170
3 Z175
现在,创建工作表后,它将写入从第二个(y)文件中获取的数据,y 文件如下所示
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
据我所知,我有这段代码(是最小的、完整的、可验证的形式,还是不是?)
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) 时出现此错误:
> autoform(sol, base)
Error in nchar(sheetName) : 'nchar()' requires a character vector
我希望有人能解释我为什么会出现这个错误以及如何解决它,感谢您阅读
请大家阅读,我自己做的,我认为问题是索引 i 与我在 y 变量中需要的不一样,所以我需要另一个 for 循环这是代码工作
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)
}