【问题标题】:In R, is there a way to remove a common word from a vector of characters? [duplicate]在 R 中,有没有办法从字符向量中删除常用词? [复制]
【发布时间】:2018-09-06 13:31:54
【问题描述】:

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

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

我想知道是否有任何函数可以调用 character.vec 以便我可以得到类似的东西:

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

相反。谢谢!

【问题讨论】:

  • 看来你只是想去掉文件扩展名,但我怀疑你的逻辑是别的东西。你的逻辑是什么?

标签: r


【解决方案1】:

我想你在追求:

> sub("\\.mat", "", character.vec)
[1] "File1" "File2" "File3" "File4"

你需要 \\ 在 .以区别于它在正则表达式中用于匹配任何字符 (https://www.rdocumentation.org/packages/base/versions/3.4.3/topics/regex)。

更一般地说,如果您想替换字符串中从最后一个句点到结尾的所有内容,您可以使用:

sub("\\.[^\\.]*?$", "", character.vec)

【讨论】:

    【解决方案2】:

    还有一种内置方法可以解析没有扩展名的文件名:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-14
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多