Получение имени файла без расширения в R Я немного новичок R, поэтому сомневаюсь. У меня есть файл ABCD.csv Длина до .csv не фиксирована и не меняется до любой длины. Как я могу извлечь часть до .csv. Ответ 1 Там встроен file_path_sans_ext из стандартного пакета install tools, который захватывает файл без расширения. tools::file_path_sans_ext("ABCD.csv") ## [1] "ABCD" Ответ 2 basename также удалит путь, ведущий к файлу. И с этим регулярным выражением любое расширение будет удалено. filepath <- "d:/Some Dir/ABCD.csv" sub(pattern = "(.*)\\..*$", replacement = "\\1", basename(filepath)) # [1] "ABCD" Или, используя file_path_sans_ext, как предложил Тайлер Ринкер: file_path_sans_ext(basename(filepath)) # [1] "ABCD" Ответ 3 Вы можете использовать sub или substr sub('\\.csv$', '', str1) #[1] "ABCD" или substr(str1, 1, nchar(str1)-4) #[1] "ABCD" Использование 'file_path' из сообщения @JasonV sub('\\..*$', '', basename(filepath)) #[1] "ABCD" или library(stringr) str_extract(filepath, perl('(?<=[/])([^/]+)(?=\\.[^.]+)')) #[1] "ABCD" данные str1 <- 'ABCD.csv' Ответ 4 U также может попробовать следующее: data <- "ABCD.csv" gsub(pattern = "\\.csv$", "", data) #[1] "ABCD" Это будет полезно и в случае списка файлов, скажем data <- list.files(pattern="\\.csv$"), используя код, будет удалено расширение всех файлов в списке.
Ответ 1 Там встроен file_path_sans_ext из стандартного пакета install tools, который захватывает файл без расширения. tools::file_path_sans_ext("ABCD.csv") ## [1] "ABCD"
Ответ 2 basename также удалит путь, ведущий к файлу. И с этим регулярным выражением любое расширение будет удалено. filepath <- "d:/Some Dir/ABCD.csv" sub(pattern = "(.*)\\..*$", replacement = "\\1", basename(filepath)) # [1] "ABCD" Или, используя file_path_sans_ext, как предложил Тайлер Ринкер: file_path_sans_ext(basename(filepath)) # [1] "ABCD"
Ответ 3 Вы можете использовать sub или substr sub('\\.csv$', '', str1) #[1] "ABCD" или substr(str1, 1, nchar(str1)-4) #[1] "ABCD" Использование 'file_path' из сообщения @JasonV sub('\\..*$', '', basename(filepath)) #[1] "ABCD" или library(stringr) str_extract(filepath, perl('(?<=[/])([^/]+)(?=\\.[^.]+)')) #[1] "ABCD" данные str1 <- 'ABCD.csv'
Ответ 4 U также может попробовать следующее: data <- "ABCD.csv" gsub(pattern = "\\.csv$", "", data) #[1] "ABCD" Это будет полезно и в случае списка файлов, скажем data <- list.files(pattern="\\.csv$"), используя код, будет удалено расширение всех файлов в списке.