Общая ситуация: в настоящее время я пытаюсь назвать кадры данных внутри списка в соответствии с файлами csv, из которых они были получены, я обнаружил, что использование gsub и regex — это путь. К сожалению, я не могу произвести именно то, что мне нужно, только кое-что. Я был бы очень благодарен за некоторые подсказки от кого-то более опытного, может быть, есть разумный чит-код R regex?
Файл называется r2_m1_enzyme.csv, скрипт должен использовать первые 4 символа для имени соответствующего фрейма данных r2_m1 и так далее…
# generates a list of dataframes, to mimic a lapply(f,read.csv) output:
data <- list(data.frame(c(1,2)),data.frame(c(1,2)),data.frame(c(1,2)),data.frame(c(1,2)))
# this mimics file names obtained by list.files() function
f <-c("r1_m1_enzyme.csv","r2_m1_enzyme.csv","r1_m2_enzyme.csv","r2_m2_enzyme.csv")
# this should name the data frames according to the csv file they have been derived from
names(data) <- gsub("r*_m*_.*","\\1", f)
но это не работает так, как ожидалось... они называются r2_m1_enzyme.csv вместо желаемого r2_m1, хотя .* должен это остановить?
If I do:
names(data) <- gsub("r*_.*","\\1", f)
Я получаю r1, r2, r3... но мне не хватает второго индекса.
Вопрос: Итак, мой вопрос: какое регулярное выражение позволит мне получить строки «r1_m1», «r2_m1», «r1_m2», ... из строк, которые называются r*_m*_xyz.csv
История поиска: регулярное выражение R использует * только для одного символа, замена регулярного выражения Gsub, использование частей имени файла для имени кадра данных, шпаргалка по регулярному выражению R,...