如何在R中使用特定模式重命名文件?

sta*_*tan 5 filenames r rename

目录中有一些.fcs文件,其格式为data.000X(其中X = 1,2,3 ...)。

我想将每个n个文件重命名为以下格式:exp.fcs(其中exp是矢量的文本)如果要重命名的文件是.fcs文件。

换句话说:我想将文件重命名为exp.txt,其中exp是文本,而不是连续的字母,例如F,cA,K等。

例如,来自:

data.0001, data.0002, data.0003, data.0004, data.0005, data.0006...  
Run Code Online (Sandbox Code Playgroud)

textF_a.fcs, textF_b.fcs, textF_c.fcs, textVv_a.fcs, textVv_b.fcs, textVv_c.fcs ...  
Run Code Online (Sandbox Code Playgroud)

我试图用file.rename(from,to)来做,但是失败了,因为参数的长度不同(我不知道这是什么意思):

a <- list.files(path = ".", pattern = "data.*$")  
b <- paste("data", 1:1180, ".fcs", sep = "")  
file.rename(a, b)
Run Code Online (Sandbox Code Playgroud)

Ite*_*tor 4

根据您的评论,一个问题是您的第一个文件未命名为“data.001” - 它名为“data.1”。用这个:

b <- sprintf("data%.4d.fcs", seq(a)) 
Run Code Online (Sandbox Code Playgroud)

它会在索引 < 1000 之前添加最多 3 个 0(因为看起来您有 1000 多个文件,这可能会更好),以便所有名称都具有相同的宽度。如果您确实只想查看“data.001”之类的内容,请%.3d在命令中使用。