首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中,如何删除最后一个斜杠之前的所有内容

在R中,如何删除最后一个斜杠之前的所有内容
EN

Stack Overflow用户
提问于 2018-03-27 04:02:36
回答 4查看 3.7K关注 0票数 8

我有一个数据集说

代码语言:javascript
复制
x <- c('test/test/my', 'et/tom/cat', 'set/eat/is', 'sk / handsome')

我想去掉最后一个斜杠之前的所有东西,结果应该是这样的

代码语言:javascript
复制
my cat is handsome

我用谷歌搜索了这段代码,它给了我最后一个斜杠之前的所有信息

代码语言:javascript
复制
gsub('(.*)/\\w+', '\\1', x)
[1] "test/test" "et/tom"    "set/eat"   "sk / tie"

如何更改此代码,以便显示最后一个斜杠之后的字符串的另一部分?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2018-03-27 04:24:32

您可以使用basename

代码语言:javascript
复制
paste(trimws(basename(x)),collapse=" ")
# [1] "my cat is handsome"
票数 7
EN

Stack Overflow用户

发布于 2018-03-27 04:12:30

使用strsplit

代码语言:javascript
复制
> sapply(strsplit(x, "/\\s*"), tail, 1)
   [1] "my"       "cat"      "is"       "handsome"

gsub的另一种方式

代码语言:javascript
复制
> gsub("(.*/\\s*(.*$))", "\\2", x) # without 'unwanted' spaces
[1] "my"       "cat"      "is"       "handsome"

使用stringr包中的str_extract

代码语言:javascript
复制
> library(stringr)
> str_extract(x, "\\w+$") # without 'unwanted' spaces
[1] "my"       "cat"      "is"       "handsome"
票数 6
EN

Stack Overflow用户

发布于 2018-03-27 04:10:59

你基本上可以在你已经找到的正则表达式中移动括号的位置:

代码语言:javascript
复制
gsub('.*/ ?(\\w+)', '\\1', x)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49499703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档