如何使用 R 中的索引从 `list.files()` 向量中删除文件名[重复]

问题描述 投票:0回答:2

我想以编程方式读取适量的 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)]
r dplyr char
2个回答
0
投票

只要您在运行代码之前将索引转换为数字,此操作就有效:

rm.files <-  rm.files %>% 
  as.numeric()

vec1[-c(rm.files)]

0
投票

grepl
返回向量中与
pattern

匹配的逻辑向量值
vec1[!grepl("no|negative", vec1)]
© www.soinside.com 2019 - 2024. All rights reserved.