R'de dizeleri tarihlere dönüştürme (örneklerle)


Genellikle tarih ve saat verilerini R’ye aktardığınızda değerler dize olarak içe aktarılır.

R’de dizeleri tarihlere dönüştürmenin en kolay yolu, aşağıdaki sözdizimini kullanan as.Date() işlevini kullanmaktır:

like.Date(x, format)

Altın:

  • x: Tek bir dize değeri veya dize değerlerinin vektörü.
  • format: Tarih için kullanılacak format. Varsayılan YYYY-AA-GG’dir.

Tarih biçimi için kullanılacak mevcut bağımsız değişkenlerin tam listesini görüntülemek için R’deki ?strftime komutunu kullanabilirsiniz, ancak en yaygın olanları şunlardır:

  • %d: Ondalık sayı olarak ayın günü (01-31)
  • %m: Ondalık sayı olarak ay (01-12)
  • %y: Yüzyılı olmayan yıl (örneğin 04)
  • %Y: Yüzyılı içeren yıl (örneğin 2004)

Bu eğitimde as.Date() fonksiyonunun pratik kullanımına ilişkin birkaç örnek gösterilmektedir.

Örnek 1: Tek Bir Dizeyi Tarihe Dönüştürme

Aşağıdaki kod, tek bir dize değerinin tarihe nasıl dönüştürüleceğini gösterir:

 #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”

Örnek 2: Dizelerden oluşan bir vektörü tarihlere dönüştürme

Aşağıdaki kod, dizelerden oluşan bir vektörün tarihlere nasıl dönüştürüleceğini gösterir:

 #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”

Örnek 3: Veri Çerçevesi Sütunu Tarihlere Dönüştürme

Aşağıdaki kod, veri blok zincirlerinden oluşan bir sütunun tarihlere nasıl dönüştürüleceğini gösterir:

 #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

Örnek 4: Birden Çok Tarih Çerçevesi Sütunu Tarihlere Dönüştürme

Aşağıdaki kod, birden fazla veri blok zinciri sütununun tarihlere nasıl dönüştürüleceğini gösterir:

 #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

Bu örnekte kullanılan lapply() işlevi hakkında daha fazla bilgiyi buradan edinebilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimler, R’de tarihlerle nasıl çalışılacağına ilişkin ek bilgiler sunar:

R’deki Tarih Formatlarına İlişkin Tam Kılavuz
R’de bir veri çerçevesi tarihe göre nasıl sıralanır
R’deki tarihten yıl nasıl çıkarılır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir