كيفية تحويل السلاسل النصية إلى تواريخ في لغة 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