Как преобразовать строки в даты в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *