如何从R中的以下字符串中提取数字/ ID?
link <- "D:/temp/sample_data/0000098618-13-000011.htm"
我只想提取0000098618-13-000011
即丢弃.htm
和D:/temp/sample_data/
。
我尝试了grep和gsub却没有多大运气。
答案 0 :(得分:3)
1)基本名称:使用basename
后跟sub
:
sub("\\..*", "", basename(link))
## [1] "0000098618-13-000011"
2)file_path_sans_ext
library(tools)
file_path_sans_ext(link)
## [1] "0000098618-13-000011"
3)子
sub(".*/(.*)\\..*", "\\1", link)
## [1] "0000098618-13-000011"
4)gsub
gsub(".*/|\\.[^.]*$", "", link)
## [1] "0000098618-13-000011"
5)分裂
sapply(strsplit(link, "[/.]"), function(x) tail(x, 2)[1])
## [1] "0000098618-13-000011"
6)阅读表。如果link
是向量,则仅当所有元素具有相同数量的/分隔的分量时,此函数才起作用。此外,这还假定唯一的点是与扩展部分分开的点。
DF <- read.table(text = link, sep = "/", comment = ".", as.is = TRUE)
DF[[ncol(DF)]]
## [1] "0000098618-13-000011"