我有一个具有以下模式的子字符串列表:
my.list <- list("file1\\subfile1-D.ext", "file12\\subfile9-D.ext", "file2\\subfile113-D.ext")
等等。我想将文件编号和子文件编号提取到包含文件/子文件编号的数字数据框中。到目前为止,我一直在使用以下方法:
extract.file <- function(file.name){
file.name <- sub("file", "", file.name)
file.name <- sub("\\\\*subfile.*", "", file.name)
}
extract.subfile <- function(subfile.name){
subfile.name <- sub("file.*subfile", "", subfile.name)
subfile.name <- sub("-D.ext", "", subfile.name)
}
name.file <- lapply(my.list, extract.file)
name.file <- as.numeric(unlist(name.file))
name.subfile <- lapply(my.list, extract.subfile)
name.subfile <- as.numeric(unlist(name.subfile))
my.df <- data.frame(file=name.file, subfile=name.subfile)
我还尝试过首先使用substring.location
from stringr
library 提取字符串位置(这会产生另一个具有开始和结束值的列表),然后遍历这两个列表,但这又变得太复杂了。有没有更好的方法来实现目标?