【问题标题】:rename multiple files in a folder using R [duplicate]使用R重命名文件夹中的多个文件[重复]
【发布时间】:2014-10-29 16:26:27
【问题描述】:

我有一个文件夹,其中包含多个按数据测量日期命名的文件。例如:“07182014.csv”、“07192014.csv”...

由于我有多个测量站,我想在每个文件名之前添加站号以进行区分。例如,文件“07182014.csv”将变为“N1_07182014.csv”。

我是 R 新手,大部分时间我都在网上搜索我的数据分析问题的解决方案。

有人可以帮我修改下面的代码,以便我可以正确重命名文件夹中的所有文件吗?或者如果可以提供任何其他更好的解决方案,那将很有帮助!

setwd("C:\\data")
files <- list.files() 
sapply(files,FUN=function(eachPath){ 
file.rename(from=eachPath,to=sub(pattern="[$.csv]", paste0("N0_"),eachPath)) 
}) 

非常感谢!

【问题讨论】:

  • 虽然子调用会是:sub(pattern="(.*)(\\\.csv)", "N0_\\1\\2"), eachPath)
  • 为什么不简单地file.rename(f, paste0('N1_', f))
  • 正确并修复 files/filez 错误。

标签: r file rename


【解决方案1】:

这是我的答案:

folder = "C:\\data"
files <- list.files(folder,pattern = "*.CSV",full.names = T) 
   sapply(files,FUN=function(eachPath){ 
   file.rename(from=eachPath,to= sub(pattern="\\/", paste0("\\/N0_"),eachPath))
 })

【讨论】:

  • 感谢您的回答。但是您的代码的文件名没有任何变化。
  • 它在我的电脑上运行。您在“c:\data”中有 *.csv 文件吗,它们都是小写字母吗?如果不将 csv 更改为 CSV
  • 谢谢。我的文件在 .CSV 中,我更改了代码。但我得到的输出是: C:/data/07182014.CSV C:/data/07212014.CSV FALSE FALSE
  • 我更改了代码。这个应该真的有用。
  • 谢谢,更新的代码有效!但是有没有办法在文件名中的日期前加上“N0_”?像“N0_07182014.csv”而不是“07182014_N0.csv”的当前输出?
猜你喜欢
  • 2019-07-23
  • 2019-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
相关资源
最近更新 更多