在R
中,我目前有一个字符向量,例如:
character.vec
> "File1.mat" "File2.mat" "File3.mat" "File4.mat"
我想知道是否有任何函数可以调用character.vec
,以便我可以获得类似的内容:
"File1" "File2" "File3" "File4"
代替。谢谢!
答案 0 :(得分:3)
我想你以后:
> sub("\\.mat", "", character.vec)
[1] "File1" "File2" "File3" "File4"
你之前需要\\。区别于它在正则表达式中用作匹配任何字符(https://www.rdocumentation.org/packages/base/versions/3.4.3/topics/regex)。
更一般地说,如果你想要替换字符串中从上一个时期到结尾的所有内容,你可以使用:
sub("\\.[^\\.]*?$", "", character.vec)
答案 1 :(得分:1)
还有一种用于解析没有扩展名的文件名的内置方法:
> library(tools) # in base R, shouldn't need to load
> test <- c("File1.mat","File2.mat","File3.mat","File4.mat")
> tools::file_path_sans_ext(test)
[1] "File1" "File2" "File3" "File4"