使用R

时间:2018-12-18 15:41:01

标签: r loops

我有一个包含一些PDF的目录-我需要除去那些标题中的空白。因此,我的第一个想法是将工作直接设置到适当的位置,并在目录中进行阅读:

blank <- list()
pdfs <- dir(pattern = "*.pdf")

然后遍历PDF:

for(i in 1:length(pdfs)) {
  gsub(" ", "-", pdfs)
}

但是这并没有完成,而且我有一种错误的感觉:

  1. 我没有正确读取目录
  2. for循环实际上并没有更改目录本身的任何内容,而只是更改了R的列表中的内容

我将感谢您使用正确的方法!谢谢

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

# List all file paths ending in .pdf in mydir (not recursively)
fnames <- list.files(mydir, pattern = "\\.pdf$", full.names = TRUE)

# Create the new names replacing spaces to dashes in base names
newnames <- file.path(dirname(fnames), gsub(" ", "-", basename(fnames)))

# If happy with the newnames, rename
file.rename(fnames, newnames)