假设我有两个目录,其中一些文件为一年(2010/01 / 01-2010 / 12/31)。这些文件的名称如下: dirct1:
fs_df_20100101F00_20100101F88_777_0009.dat
fs_df_20100102F00_20100102F88_777_0009.dat
etc.............(only the date change)
dirct2:
gf_gh_20100101F00_20100101F88_788_08.dat
gf_gh_20100102F00_20100102F88_788_08.dat
etc.............(only the date change)
这将列出所有日期的dir1和dir2中的所有文件。但是dir1中缺少一些文件(日期)。但我需要的是只列出dir2中与dir1共享相同日期的文件。 (如果dir1中缺少日期,请不要在dir2中列出).......
答案 0 :(得分:1)
首先需要从文件名中提取日期。由于您具有一致的命名系统,因此可以避免使用正则表达式并使用substr
dir1 = c("fs_df_20100101F00_20100101F88_777_0009.dat", "fs_df_20100102F00_20100102F88_777_0009.dat")
dir2 = c("gf_gh_20100101F00_20100101F88_788_08.dat", "gf_gh_20100102F00_20100102F88_788_08.dat")
substr(dir1, 7, 14)
#[1] "20100101" "20100102"
然后使用dir1
和dir2
运算符
which
中%in%
的日期
matching = which(substr(dir1, 7, 14) %in% substr(dir2, 7, 14))
然后使用
dir1[matching]