Удалите несоответствующий файл CSV между двумя папками перед чтением файла CSV - PullRequest
1 голос
/ 07 января 2020

У меня есть две папки, а также они имеют определенный шаблон в имени файла

В папке "post" есть 5 файлов "aab.csv, bb c .csv, cfd.csv, f.csv, В папке «comment» g.csv есть 4 файла: «aab_comment.csv, bbc_comment.csv, cfd_comment.csv, dgh_comment.csv»

Это большой файл данных. Поэтому, прежде чем читать эти файлы, я хочу прочитать только соответствующие файлы. Не совпадает файл, в котором переднее слово не совпадает друг с другом.

Например, в папке «post», aab, bb c, cfd и в папке «comment» aab_comment, bbc_coment, переднее слово cfd_comment такие же. Итак, я хочу сделать только 3 файла "aab.csv, bb c .csv, cfd.csv" в списке файлов почтовой папки. c .csv, cfd.csv)?

Вот то, что я пробовал до сих пор.

post_dir <- c:/post/
comment_dir <- c:/comment/
post <- list.files(post_dir)
#> aab.csv',' bbc.csv', 'cfd.csv', 'f.csv', 'efg.csv', 'fgg.csv', 'gda.csv'

comment <- list.files(comment_dir)
#> 'abc_comment.csv', 'bcc_comment.csv', 'efg_comment.csv', 'fgg_comment.csv'

1 Ответ

2 голосов
/ 07 января 2020

Вы можете использовать sub для извлечения первого слова из имен файлов и %in% для поиска совпадений:

x <- sub("(.*)\\..*", "\\1", post)
y <- sub("(.*)_.*", "\\1", comment)
post[x %in% y]
#[1] "aab.csv" "bbc.csv" "cfd.csv"
comment[y %in% x]
#[1] "aab_comment.csv" "bbc_comment.csv" "cfd_comment.csv"

Данные:

post  <- c("aab.csv", "bbc.csv", "cfd.csv", "f.csv", "g.csv")
comment  <- c("aab_comment.csv", "bbc_comment.csv", "cfd_comment.csv", "dgh_comment.csv")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...