몇 가지 다른 파일 확장자에 걸쳐 동일한 하위 디렉토리에있는 파일 이름 목록이 있습니다. 내 목표는 전체 경로와 확장자없이 각 파일 이름을 추출하는 것입니다. 다음과 같은 방법으로 성공적으로 수행 할 수 있습니다.
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_*()
컬렉션 과 다른 기능으로 이것을 달성 할 수있는 쉬운 방법이 있다고 확신 하지만, 그다지 성공하지 못했습니다.
감사!
편집 : 여러분 중 일부는 이러한 모든 단계를 한 번에 수행하는 것과 관련된 몇 가지 유용한 제안을했으며 잘 작동합니다. 또 다른 시나리오에서 나는 경우에, 있었다 같은 벡터에 일련의 기능을 매핑하는 데,이 일을하는 가장 좋은 방법은 무엇인가?
를 사용 basename
하여 파일 이름 만 가져오고 file_path_sans_ext
확장자없이 가져올 수 있습니다.
trimws(tools::file_path_sans_ext(basename(file_list)))
#[1] "city_a" "city_b" "city_c"
또는 기본 R에 보관하십시오.
trimws(sub('\\..*', '', basename(file_list)))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다