Как преобразовать строки в даты в r (с примерами)
Часто, когда вы импортируете данные даты и времени в R, значения импортируются в виде строк.
Самый простой способ преобразовать строки в даты в R — использовать функцию as.Date() , которая использует следующий синтаксис:
Like.Date(x, формат)
Золото:
- x: одно строковое значение или вектор строковых значений.
- формат: формат даты. По умолчанию — ГГГГ-ММ-ДД.
Вы можете использовать команду ?strftime в R, чтобы отобразить полный список доступных аргументов для использования в формате даты, но наиболее распространенными являются:
- %d: день месяца в виде десятичного числа (01–31).
- %m: месяц в виде десятичного числа (01–12).
- %y: Год без столетия (например, 04).
- %Y: год со столетием (например, 2004 г.)
В этом руководстве показано несколько примеров практического использования функции as.Date() .
Пример 1. Преобразование одной строки в дату
Следующий код показывает, как преобразовать одно строковое значение в дату:
#create string value x <- c(" 2021-07-24 ") #convert string to date new <- as.Date(x, format=" %Y-%m-%d ") new [1] "2021-07-24" #check class of new variable class(new) [1] “Date”
Пример 2. Преобразование вектора строк в даты
Следующий код показывает, как преобразовать вектор строк в даты:
#create vector of strings x <- c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 ") #convert string to date new <- as.Date(x, format=" %Y-%m-%d ") new [1] "2021-07-24" "2021-07-26" "2021-07-30" #check class of new variable class(new) [1] “Date”
Пример 3. Преобразование столбца фрейма данных в даты
Следующий код показывает, как преобразовать столбец блокчейнов данных в даты:
#create data frame df <- data.frame(day = c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 "), sales=c(22, 25, 28), products=c(3, 6, 7)) #view structure of data frame str(df) 'data.frame': 3 obs. of 3 variables: $ day: Factor w/ 3 levels "2021-07-24","2021-07-26",..: 1 2 3 $ sales: num 22 25 28 $products: num 3 6 7 #convert day variable to date df$day <- as.Date(df$day, format=" %Y-%m-%d ") #view structure of new data frame str(df) 'data.frame': 3 obs. of 3 variables: $day: Date, format: "2021-07-24" "2021-07-26" ... $ sales: num 22 25 28 $products: num 3 6 7
Пример 4. Преобразование нескольких столбцов рамки даты в даты
Следующий код показывает, как преобразовать несколько столбцов цепочек данных в даты:
#create data frame df <- data.frame(start = c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 "), end = c(" 2021-07-25 ", " 2021-07-28 ", " 2021-08-02 "), products=c(3, 6, 7)) #view structure of data frame str(df) 'data.frame': 3 obs. of 3 variables: $ start: Factor w/ 3 levels "2021-07-24","2021-07-26",..: 1 2 3 $ end: Factor w/ 3 levels "2021-07-25","2021-07-28",..: 1 2 3 $products: num 3 6 7 #convert start and end variables to date df[,c(' start ', ' end ')] = lapply (df[,c(' start ', ' end ')], function(x) as.Date(x, format=" %Y-%m-%d ")) #view structure of new data frame str(df) 'data.frame': 3 obs. of 3 variables: $start: Date, format: "2021-07-24" "2021-07-26" ... $end: Date, format: "2021-07-25" "2021-07-28" ... $products: num 3 6 7
Подробнее о функции lapply() , используемой в этом примере, можно узнать здесь .
Дополнительные ресурсы
Следующие руководства содержат дополнительную информацию о том, как работать с датами в R:
Полное руководство по форматам даты в R
Как отсортировать кадр данных по дате в R
Как извлечь год из даты в R