微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在R中输入多张Excel

如何解决在R中输入多张Excel

我试图在R中使用for循环放入多张excel,并进行一些估算。我写的代码如下,

sheet <- getSheetNames("market_latest.xlsx")
for (i in 2:length(sheet)-1){
data[i] <- read.xlsx("market_latest.xlsx",sheet = sheet[i],fillMergedCells = TRUE)
col[i] <- colnames(data[i])
colnames(data[i]) <- as.character(unlist(data[i][1,]))
col[i+1] <- colnames(data[i])
colnames(data[i]) <- as.character(unlist(data[i][1,]))
data[i] <- data[i][,!duplicated(colnames(data[i]))] 
write.xlsx(data[i],file="sampleop.xlsx",sheetName="Sheet1",col.names=TRUE,row.names=FALSE,append=FALSE)
}

插补部分正在工作,因此我对此没有任何问题。但是,当我运行代码时,它向我抛出警告,但没有输出。我想使用2到n-1的Excel表格,请让我知道我错了。 错误图片添加在下面。 enter image description here

解决方法

#将所有Excel工作表导入列表

lst <- lapply(2:10,function(i) read.xlsx("file.xlsx",sheet = i,fillMergedCells = TRUE))

#使用for循环以所需格式删除/插入数据

for(i in 1:9){
  col <- colnames(lst[[i]])
  colnames(lst[[i]]) <- as.character(unlist(lst[[i]][1,]))
  assign(paste0("head_",i),colnames(lst[[i]]))
  lst[[i]] <- lst[[i]][-1,]
  colnames(lst[[i]]) <- as.character(unlist(lst[[i]][1,]))
  lst[[i]] <- lst[[i]][,!duplicated(colnames(lst[[i]]))]
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。