Создайте столбец, заполненный непрерывной строкой с тем же значением, которое берется из числа в имени файла в r - PullRequest
0 голосов
/ 27 февраля 2020

После прочтения в CSV-файл, который содержит число в своем имени файла, я хотел бы создать столбец в кадре данных с именем «station_no» и заполнить каждую строку числом, которое является частью имени файла. Типичное имя формата файла можно увидеть ниже.

Например:

air_temp_df <- read_csv('data/2015.AT[AirTemperature].csv.zip', skip = 15) %>% mutate(station_no = XXXXXX)

где xxxx где-то, я бы хотел, чтобы столбец station_no заполнялся несколькими строками 2015 года.

Спасибо.

1 Ответ

1 голос
/ 27 февраля 2020

Решение с использованием базы 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]" будет не работать в этих случаях)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...