Вы можете использовать substring
для удаления n
символов или регулярное выражение для удаления шаблона.
s <- "Alabama_8422.csv"
### if it's always the last 9 characters you want to remove
substring(s, 1, nchar(s) - 9)
# [1] "Alabama"
### remove the last dot and everything after it
gsub("\\.[^.]*$", "", s)
# [1] "Alabama_8422"
tools:::file_path_sans_ext(s)
# [1] "Alabama_8422"
### remove everything after the first underscore
gsub("_[^_]*$", "", s)
# [1] "Alabama"
### keep just the first group of letters (case-insens)
### (the space is for New Jersey, etc, not sure if that's how it'll appear)
gsub("^([A-Za-z ]+).*", "\\1", s)
# [1] "Alabama"
### alternative, remove from the optional non-letter character before the first number
gsub("[^A-Za-z]?[0-9].*", "", s)
# [1] "Alabama"
@ nurandi, спасибо, что предложили поместить это в контекст OP используйте dplyr
:
mutate(data, state = gsub("^([A-Za-z ]+).*", "\\1", filename))
(или любой другой вариант substr
/ gsub
, который вы выберете).