كيفية تحويل السلاسل النصية إلى تواريخ في لغة r (مع أمثلة)


في كثير من الأحيان، عند استيراد بيانات التاريخ والوقت إلى R، سيتم استيراد القيم كسلاسل.

أسهل طريقة لتحويل السلاسل إلى تواريخ في R هي استخدام الدالة as.Date() ، والتي تستخدم بناء الجملة التالي:

مثل.التاريخ (x، التنسيق)

ذهب:

  • x: قيمة سلسلة واحدة أو متجه لقيم السلسلة.
  • التنسيق: التنسيق الذي سيتم استخدامه للتاريخ. الإعداد الافتراضي هو YYYY-MM-DD.

يمكنك استخدام الأمر ?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

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *