Ответ 1
Там встроен file_path_sans_ext
из стандартного пакета install tools, который захватывает файл без расширения.
tools::file_path_sans_ext("ABCD.csv")
## [1] "ABCD"
Я немного новичок R, поэтому сомневаюсь.
У меня есть файл
ABCD.csv
Длина до .csv не фиксирована и не меняется до любой длины. Как я могу извлечь часть до .csv.
Там встроен file_path_sans_ext
из стандартного пакета install tools, который захватывает файл без расширения.
tools::file_path_sans_ext("ABCD.csv")
## [1] "ABCD"
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"
Вы можете использовать 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'
U также может попробовать следующее:
data <- "ABCD.csv"
gsub(pattern = "\\.csv$", "", data)
#[1] "ABCD"
Это будет полезно и в случае списка файлов, скажем
data <- list.files(pattern="\\.csv$")
, используя код, будет удалено расширение всех файлов в списке.