在R中输入多张Excel表格
我试图在R中使用for循环输入多张excel表格,并进行一些插补。我写的代码如下在R中输入多张Excel表格,r,for-loop,readxl,openxlsx,R,For Loop,Readxl,Openxlsx,我试图在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(dat
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)
}
工作表#将所有excel工作表导入列表
lst <- lapply(2:10, function(i) read.xlsx("file.xlsx", sheet = i, fillMergedCells = TRUE))
l欢迎来到SO!这个问题缺少很多信息,所以不太可能为你带来任何成果,Aditya hande。你说:“它向我发出警告,但没有输出”。。。也许你可以和我们分享这些警告?几乎可以肯定的是,它们表明或与您可能遇到的任何问题有关。缺少这些,我们没有警告,没有错误,也没有样本数据,所以不太可能有人能给你很多。参考文献:,和。:
优先于-
。将(i in 2:长度(图纸)-1)的更改为(i in 2:(长度(图纸)-1))的
。检查2:5-1
和2:(5-1)
之间的差异,以获取说明。@GregorThomas Hi感谢您的输入,我已经尝试过了,但是抛出错误。错误是“%closure”类型的对象不可子集。请看我在问题中添加的错误。这是使用函数名(如变量)时的常见错误。比如,mean
是一个函数名,如果我使用mean[1]
则会出现错误,因为我无法设置函数。但是如果我先说mean=1:3
,那么有一个非函数平均值,那么mean[1]
就起作用了。因此,当您执行data[i]
时,可能没有名为data
的对象,因此R尝试使用内置函数data()
。可能在循环开始之前放置一个data=list()
,以创建一个数据对象。您还应该将data[i]
更改为data[[i]]
-使用双括号访问列表中的单个元素。@GregorThomas非常感谢它确实有帮助:)。我也补充了我的答案。
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]]))]
}