首页 > 解决方案 > 如何根据每个项目中的相似字符从 r 列表中选择项目?

问题描述

我正在尝试从列表中选择一些项目,并根据每个项目中的相似字符对它们进行分组。例如,我想将所有文件与“20130409”分组并将它们分配给一个目录。请问,我该怎么做?我尝试使用循环,但它不起作用。

数据 <- list.files('Output_crop/')

"LC08_L1TP_044033_20130409_20180201_01_T1_B1.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_B10.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_B11.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_B2.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_B3.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_B4.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_B5.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_B6.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_B7.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_B8.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_B9.tif" "LC08_L1TP_044033_20130409_20180201_01_T1_BQA.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B1.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B10.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B11.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B2.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B3.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B4.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B5.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B6.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B7.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B8.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_B9.tif" "LC08_L1TP_044033_20130416_20170310_01_T1_BQA.tif" " LC08_L1TP_044033_20130603_20170310_01_T1_B1.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_B10.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_B11.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_B2.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_B3.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_B4.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_B5.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_B6.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_B7.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_B8.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_B9.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_BQA.tif"LC08_L1TP_044033_20130603_20170310_01_T1_B9.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_BQA.tif"LC08_L1TP_044033_20130603_20170310_01_T1_B9.tif" "LC08_L1TP_044033_20130603_20170310_01_T1_BQA.tif"

标签: rlistcharacter

解决方案


您可以通过过滤名称来执行此操作而无需循环grepl()。该函数grepl()在字符中查找正则表达式模式并返回一个布尔值,指示它是否存在。

所以,如果你想得到所有包含“20130409”的元素,你只需写:

selection = data[grepl("20130409",data)]

然后,该向量selection仅包含包含此子字符串的条目。然后,您可以循环通过此向量来移动或复制这些文件。


推荐阅读