我有数百个文件,其中包含Yahoo finance API的数据。
它们以以下形式命名:
R> print(list.files())
[1] "A_yahoo_2017-10-14_2018-10-14.csv"
[2] "AAL_yahoo_2017-10-14_2018-10-14.csv"
[3] "AAP_yahoo_2017-10-14_2018-10-14.csv"
我想删除代码(symbol)之后的名称并保留扩展名。
例如:
[2] "AAL_yahoo_2017-10-14_2018-10-14.csv"
成为
[2] "AAL.csv"
我决定删除扩展名,拆分文件的整个名称,使用代码,然后再次添加扩展名(我知道这很麻烦)。像这样:
library(tools)
oldnames = list.files()
oldnames = tools::file_path_sans_ext(oldnames)
oldnames = strsplit(oldnames, "_")
哪个会产生这样的内容(示例)
print(oldnames)
.
.
[[173]]
[1] "EXC" "yahoo" "2017-10-14" "2018-10-14"
.
.
如您所见,股票代码在[1]。我不确定下一步如何重命名文件夹中的整个文件,或者不确定是否有更简化的方法。
答案 0 :(得分:1)
fn <- c("A_yahoo_2017-10-14_2018-10-14.csv"
, "AAL_yahoo_2017-10-14_2018-10-14.csv"
, "AAP_yahoo_2017-10-14_2018-10-14.csv")
firstpart <- sapply(strsplit(fn,"_"), "[[",1)
mapply(file.rename, from=fn, to=paste0(firstpart, ".csv"))
但是您必须确保第一部分是唯一的,即只有一个文件名以AAL,AAP等开头。