Reputation: 1141
I have a list of files named for example:
"Experiment_myex1_test1"
"Experiment_myex1_test2"
"Experiment_myex1_test3"
"Experiment_myex2_test1"
"Experiment_myex2_test2"
"Experiment_myex2_test3"
"Experiment_myex3_test1"
"Experiment_myex3_test2"
"Experiment_myex3_test3"
and so on (1000 total files) and a file .txt that looks like this:
df
List_of_ex
myex1
myex1
myex1
myex2
myex2
myex2
myex4
myex4
myex4
(They appear in triplicate because of *test1, *test2 and *test3).
I would like to get a list of files from list.files()
that match the patterns in df[,1]
. In other words, I would like to get the following list:
"Experiment_myex1_test1"
"Experiment_myex1_test2"
"Experiment_myex1_test3"
"Experiment_myex2_test1"
"Experiment_myex2_test2"
"Experiment_myex2_test3"
Upvotes: 0
Views: 68
Reputation: 1430
Assuming you know for sure that you will always have "test1", "test2" and "test3", you can use regex with grep
for this task.
lapply(df[, 1], function(pattern_ex) {
lapply(c("test1", "test2", "test3"), function(pattern_test){
grep(pattern = paste0(pattern_ex, ".*", pattern_test, "$"),
x = list.files(),
value = T)
})
})
Upvotes: 1