在R语言中如何从字符向量移除通用词及指定后缀?
问题2:移除.mat后缀,转换为"File1"等格式
这个场景太常见了!针对你的需求,我给你三种简单高效的实现方式:
首先先定义你的字符向量:
character.vec <- c("File1.mat", "File2.mat", "File3.mat", "File4.mat")
Base R 的 sub 函数:用正则匹配结尾的
.mat并替换为空:result <- sub("\\.mat$", "", character.vec) # 结果:"File1" "File2" "File3" "File4"解释:
\\.是转义点(因为.在正则里是通配符),$表示匹配字符串结尾,确保只去掉末尾的.mat。stringr 包的 str_remove:语法更直观,新手友好:
library(stringr) result <- str_remove(character.vec, "\\.mat$") # 或者用str_replace result <- str_replace(character.vec, "\\.mat$", "")tools 包的专用函数:如果你是处理文件名,tools包的
file_path_sans_ext是专门用来去除文件扩展名的,不管扩展名是什么都能搞定,最稳妥:library(tools) result <- file_path_sans_ext(character.vec)
这些方法都能完美得到你想要的结果,选哪个看你的习惯——我个人处理文件名时更喜欢用tools包的方法,不用写正则,不容易出错~
内容的提问来源于stack exchange,提问作者user321627
相关产品推荐
相关产品推荐

