У меня есть data.frame, который содержит текстовый столбец имен файлов. Я хотел бы вернуть имя файла без пути или расширения файла. Как правило, имена моих файлов нумеруются, но они не обязательно должны быть. Например:
df<-data.frame(data=c("a","b"),fileNames=c("C:/a/bb/ccc/NAME1.ext","C:/a/bb/ccc/d D2/name2.ext"))
Я хотел бы вернуть эквивалент
df<-data.frame(data=c("a","b"),fileNames=c("NAME","name"))
но я не могу понять гладкое регулярное выражение, чтобы сделать это с помощью gsub. Например, я могу избавиться от расширения с (если имя файла заканчивается номером):
gsub('([0-9]).ext','',df[,"fileNames"])
Хотя я пробовал различные шаблоны (читая файлы справки regex и подобные им решения на этом сайте), я не могу получить регулярное выражение, чтобы вернуть текст между последним "/" и первым ".". Любые мысли или переходы к подобным вопросам очень ценятся!
Лучшее, что я получил, это:
gsub('*[[:graph:]_]/|*[[:graph:]_].ext','',df[,"fileNames"])
Но это 1) не избавляет от всех символов ведущего пути и 2) зависит от конкретного расширения файла.