【发布时间】:2020-04-06 21:00:47
【问题描述】:
我对 R 比较陌生,所以如果这是一个非常基本的问题,我深表歉意。
我正在尝试使用 list.files(pattern) 方法读取两个 Excel 文件,然后使用 for 循环绑定文件并替换绑定文件中的值。但是,我的脚本生成的输出只是一个文件的输出,这意味着它没有绑定。
文件名是fact_import_2020和fact_import_20182019。
FilePath <- "//srdceld2/project2/"
FileNames <- list.files(path = FilePath, pattern = "fact_import_20", all.files = FALSE,
full.names = FALSE, recursive = FALSE,
ignore.case = FALSE, include.dirs = FALSE, no.. = FALSE)
FileCount <- length(FileNames)
for(i in 1:FileCount){
MOH_TotalHC_1 <- read_excel(paste(FilePath, "/", FileNames[i], sep = ""), sheet = 1, range = cell_cols("A:I"))
MOH_TotalHC_2 <- read_excel(paste(FilePath, "/", FileNames[i], sep = ""), sheet = 1, range = cell_cols("A:I"))
MOH_TotalHC <- rbind(MOH_TotalHC_1, MOH_TotalHC_2)
MOH_TotalHC <- MOH_TotalHC[complete.cases(MOH_TotalHC), ]
【问题讨论】:
-
仅供参考,在 SE formatting 中,代码块 (1) 只需要一行中的三个反引号,该行上没有代码; (2) 他们受益于在该行文本上添加一种语言,
lang-r这里; (3) close-fence (在代码末尾) 也需要全部在一行上,之前或之后都没有。当您的代码看起来直观且分离时,它确实很有帮助,即使主要是一种风格。感谢您从您所做的事情开始,尽管您上次的编辑只是抹杀了我的修复...请参阅我最近的编辑以获得进一步的建议。 -
...但是拥有自给自足的代码会有所帮助,但事实并非如此。至少,您的
for循环中缺少一个右大括号}。此外,您是否有理由明确执行full.names=FALSE然后paste(FilePath,"/",FileNames[i],sep="")?这完全没有必要(正如 Sathish 的回答所暗示的那样)。