我有一个存储的txt文件列表A.path,我希望用grep它来查找与该文件相关的年份,并将今年保存到矢量中.但是,由于其中一些txt文件在其文本中有多年,我只想存储第一年.我怎样才能做到这一点?
我已经完成了类似的事情lapply,这就是我开始解决这个问题的方法:
lapply(A.path, function(i){
j <- paste0(scan(i, what = character(), comment.char='', quote=NULL), collapse = " ")
year <- vector()
year[i] <- grep('[0-9][0-9][0-9][0-9]', j)
})
Run Code Online (Sandbox Code Playgroud)
grep可能不是正确使用的函数,因为它返回j每个函数的全部i.在这里使用什么是正确的功能?
将注释转换为答案,您可以使用gsubwith \\1来提取第一个匹配的值(即()正则表达式之间匹配的文本)
gsub(".*?([0-9]{4}).*", "\\1", j)
Run Code Online (Sandbox Code Playgroud)