使用grepl()匹配数据R上的多个模式

使用grepl()匹配数据R上的多个模式,r,R,此命令用于子集数据文件列表,以删除所有“jpg”文件 filetype.isnotjpg我会尝试使用“|”的折叠分隔符粘贴()-ing,这是正则表达式的OR运算符: target.files <- setdiff(filelist, subset(filelist, grepl( paste( c("\\.jpg$", "\\.doc$", "\\.pdf$", "\\xls$"), collapse="|") , filelist) 我会尝试使用“|”这是正则表达式的OR运算符的折叠分

此命令用于子集数据
文件列表
,以删除所有“jpg”文件

filetype.isnotjpg我会尝试使用“|”的折叠分隔符粘贴()
-ing,这是正则表达式的OR运算符:

target.files <- setdiff(filelist, subset(filelist, grepl( paste(
c("\\.jpg$", "\\.doc$", "\\.pdf$", "\\xls$"), collapse="|") , filelist)
我会尝试使用“|”这是正则表达式的OR运算符的折叠分隔符来粘贴()

target.files <- setdiff(filelist, subset(filelist, grepl( paste(
c("\\.jpg$", "\\.doc$", "\\.pdf$", "\\xls$"), collapse="|") , filelist)

您可以在
tools
中使用
file\u ext
从文件名中提取扩展名。然后,您可以查看它们是否在您的列表中,并使用标准向量子集:

filelist[!(tools::file_ext(filelist) %in% c("jpg","jpeg","doc","pdf","xls"))]

如果需要忽略大小写,可以在列表或扩展名周围使用
tolower

可以使用
tools
中的
file\u ext
从文件名中提取扩展名。然后,您可以查看它们是否在您的列表中,并使用标准向量子集:

filelist[!(tools::file_ext(filelist) %in% c("jpg","jpeg","doc","pdf","xls"))]

如果你需要忽略大小写,你可以在列表或扩展名周围加上一个
tolower

一个可复制的例子如何你有一些我修复的
grepl
拼写错误。一个可复制的例子如何你有一些我修复的
grepl
拼写错误。这样,我现在可以生成字符串了。file.list来自一个sql数据库,因此list.files()不是一个选项。这样做有效,我现在可以生成字符串。file.list来自sql数据库,因此list.files()不是一个选项。
target.files <- setdiff(filelist, subset(filelist, grepl( paste(
c("\\.jpg$", "\\.doc$", "\\.pdf$", "\\xls$"), collapse="|") , filelist)
 my_files <- list.files(path="/path/to/dir/", 
                        pattern=paste( c("\\.jpg$", "\\.doc$", "\\.pdf$", "\\xls$"), 
                                       collapse="|") )
filelist[!(tools::file_ext(filelist) %in% c("jpg","jpeg","doc","pdf","xls"))]