我要重命名文件名的一部分,因为这个结构是在getfile中硬编码的。
我有包含ltQCs、sQCs和示例的代谢组学mzML文件,但是文件名有不同的长度( 6 ,6,7).I试图运行XCMS,但它只选择ltQCs和sQCs,因为该结构被硬编码为6。如何更改文件名的结构请参见下面的示例:
2020-02-02_B1W1_RP_NEG_P7_A20_001.mzML (结构为7)到2020-02-02_B1W1_RP_NEG_P7A20_001.mzML (结构为6)
我强调了我想要改变的部分。如果这是不可能的,可能通过添加一个字母或数字来重命名ltQCs和sQCs可能更容易,因此我得到了7的结构,然后将getfile中的结构更改为7。
希望有人能帮忙,谢谢:)
最好的
发布于 2020-02-20 14:22:59
可以使用gsub使用正则表达式更改文件名,该表达式删除倒数第二个下划线。
my_regex <- "(_)([[:alnum:]]{3}_[[:alnum:]]{3}[.]mzML)"
my_filename <- "2020-02-02_B1W1_RP_NEG_P7_A20_001.mzML"
gsub(my_regex, "\\2", my_filename)
#> [1] "2020-02-02_B1W1_RP_NEG_P7A20_001.mzML"所以你可以做这样的事
rename_mzMLs <- function(directory)
{
filenames <- list.files(directory, pattern = ".mzML")
my_regex <- "(_)([[:alnum:]]{3}_[[:alnum:]]{3}[.]mzML)"
new_filenames <- gsub(my_regex, "\\2", filenames)
file.rename(filenames, new_filenames)
}并通过做
rename_mzMLs("C:/path/to/mzML/files/")显然,我无法测试这一点,因为我没有任何mzML文件,所以请确保在运行此函数之前备份您的文件!
https://stackoverflow.com/questions/60321950
复制相似问题