我有一个数据集说
x <- c('test/test/my', 'et/tom/cat', 'set/eat/is', 'sk / handsome')我想去掉最后一个斜杠之前的所有东西,结果应该是这样的
my cat is handsome我用谷歌搜索了这段代码,它给了我最后一个斜杠之前的所有信息
gsub('(.*)/\\w+', '\\1', x)
[1] "test/test" "et/tom" "set/eat" "sk / tie"如何更改此代码,以便显示最后一个斜杠之后的字符串的另一部分?
谢谢
发布于 2018-03-27 04:24:32
您可以使用basename
paste(trimws(basename(x)),collapse=" ")
# [1] "my cat is handsome"发布于 2018-03-27 04:12:30
使用strsplit
> sapply(strsplit(x, "/\\s*"), tail, 1)
[1] "my" "cat" "is" "handsome"gsub的另一种方式
> gsub("(.*/\\s*(.*$))", "\\2", x) # without 'unwanted' spaces
[1] "my" "cat" "is" "handsome"使用stringr包中的str_extract
> library(stringr)
> str_extract(x, "\\w+$") # without 'unwanted' spaces
[1] "my" "cat" "is" "handsome"发布于 2018-03-27 04:10:59
你基本上可以在你已经找到的正则表达式中移动括号的位置:
gsub('.*/ ?(\\w+)', '\\1', x)https://stackoverflow.com/questions/49499703
复制相似问题