在R中,有没有办法从字符向量中删除常用单词?

时间:2018-03-28 01:35:40

标签: r

R中,我目前有一个字符向量,例如:

character.vec
> "File1.mat"      "File2.mat"       "File3.mat"        "File4.mat" 

我想知道是否有任何函数可以调用character.vec,以便我可以获得类似的内容:

"File1"      "File2"       "File3"        "File4" 

代替。谢谢!

2 个答案:

答案 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"