Решение с использованием базы R:
file_path <- 'data/2015.AT[AirTemperature].csv.zip'
air_temp_df <- read_csv(file_path, skip = 15)
air_temp_df$station_no <- gsub("^.*/([0-9]{4})\\..*", "\\1", file_path)
Мы можем использовать regex
для извлечения четырехзначного года из строки file_path
.
regex
определяет: начало строка (^
), за которой следует «что-то или ничего» (.*
), за которым следует «/» (/
), за которым следует группа из четырех чисел, которые мы хотим использовать позже (отмечены круглыми скобками) ([0-9]{4}
), за которым следует точка (\\.
), за которой следует что-то или ничего (. *).
Затем мы заменяем всю строку только первой (только в этом случае) группой (\\1
) )
Это решение также должно работать, если в file_path есть другие числа (использование "[^0-9]"
будет не работать в этих случаях)