У меня есть список имен файлов, которые находятся в одном подкаталоге и охватывают несколько разных расширений файлов. Моя цель - извлечь каждое из имен файлов без их полных путей и без их расширений, что я могу успешно сделать следующим образом:
req_libraries <- c("dplyr", "purrr", "stringr")
lapply(req_libraries, require, character.only = TRUE)
file_list <- c("dir/folder/city_a.csv",
"dir/folder/ city_b.xlsx",
"dir/folder/city_c .csv")
target_names <- file_list %>%
map(~ str_split(.x, pattern = "/")[[1]]) %>%
map(~ tail(.x, 1)) %>%
map(~ str_split(.x, pattern = "\\.")[[1]][1]) %>%
map(~ trimws(.x, which = "both")) %>%
unlist() %>%
tibble()
target_names
Это подходит для цели, но мне любопытно, как лучше всего я могу оптимизировать свою цепочку функций. Я уверен, что есть простой способ добиться этого, возможно, с помощью другой функции из коллекции map_*()
, но я не добился большого успеха.
Спасибо!
EDIT : некоторые из вас сделали несколько действительно полезных предложений, связанных с выполнением всех этих шагов за один go, и они работают хорошо. Но если в другом сценарии у меня было для сопоставления серии функций с одним и тем же вектором, как лучше всего это сделать?