word:12335 anotherword:2323434 totallydifferentword/455 word/32
我需要在:或/之前使用基本R函数来获取字符串.我可以使用stringr执行此操作,但不希望向我的包添加另一个依赖项.单词可以具有可变数量的字符,但总是以(一个)分隔符结束.我不需要保留之后的内容.
解决方法
也许试试:
x <- c("word:12335","anotherword:2323434","totallydifferentword/455","word/32") lapply(strsplit(x,":|/"),function(z) z[[1]]) #as a list sapply(strsplit(x,function(z) z[[1]]) #as a string
有gsub的正则表达式解决方案也可以工作但是在我遇到类似问题的经历中,strsplit将不那么雄辩但更快.
我认为这个正则表达式也会起作用:
gsub("([a-z]+)([/|:])([0-9]+)","\\1",x)
在这种情况下,gsub更快:
Unit: microseconds expr min lq median uq max 1 GSUB() 19.127 21.460 22.392 23.792 106.362 2 STRSPLIT() 46.650 50.849 53.182 54.581 854.162