Як перетворити рядки на дати в r (з прикладами)


Часто, коли ви імпортуєте дані дати та часу в R, значення будуть імпортовані як рядки.

Найпростіший спосіб перетворити рядки на дати в R — це використовувати функцію as.Date() , яка використовує такий синтаксис:

like.Date(x, формат)

золото:

  • x: одне рядкове значення або вектор рядкових значень.
  • format: Формат, який використовуватиметься для дати. За замовчуванням РРРР-ММ-ДД.

Ви можете використовувати команду ?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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *