我想以编程方式读取适量的 Excel 文件,将它们编译到单个数据库,然后将它们打印到新文件。我通常使用
list.files()
和 for
循环来实现此目的,但在这种情况下,有一些文件我不想包含在读取的数据中。我不想将它们从目录中移出,因为这不是我组织数据的项目。
这是一个比真实文件名短得多的示例。我想删除的文件名包括字符串“no”和“否定”。我认为代码本身就说明了一切。
library(tidyverse)
vec1 <- c('C:/yes/file.xlsx','C:/yes/file.xlsx','C:/yes/file.xlsx',
'C:/no/file.xlsx','C:/no/file.xlsx','C:/yes/file.xlsx',
'C:/yes/file.xlsx','C:/yes/file.xlsx','C:/negative/file.xlsx')
vec1
rm.files <- vec1 %>% str_locate(c('no')) %>% data.frame() %>%
coalesce(vec1 %>% str_locate('negative') %>% data.frame()) %>%
na.omit() %>%
rownames()
rm.files
通过从
vec1
中删除此文件名索引,我想在读取数据之前从向量中删除这些文件名。在我看来,我应该能够做这样的事情:
vec1[-c(rm.files)]
只要您在运行代码之前将索引转换为数字,此操作就有效:
rm.files <- rm.files %>%
as.numeric()
vec1[-c(rm.files)]
grepl
返回向量中与 pattern
匹配的逻辑向量值
vec1[!grepl("no|negative", vec1)]