![نحوه محاسبه اختلاف زمان در R [difftime(), lubridate]](http://learn-programing.ir/wp-content/uploads/2022/11/calculate-time-difference-in-r-768x468.png)
برای محاسبه اختلاف زمانی بین دو تاریخ در R، می توانید از داخلی استفاده کنید difftime() عملکرد.
مثلا:
date1 <- "2022-09-12 18:49:21" date2 <- "2022-03-21 10:34:07" # Time difference in days difftime(date1, date2)
خروجی:
Time difference of 175.3439 days
این تابع از ثانیه، دقیقه، ساعت، روز و هفته به عنوان واحد زمان پشتیبانی می کند. اما برای محاسبه اختلاف زمانی بر حسب ماه یا سال، باید به یک کتابخانه تکیه کنید.
این یک راهنمای جامع برای محاسبه اختلاف زمانی در R است.
نحوه استفاده از داخلی را یاد خواهید گرفت difftime() تابع محاسبه اختلاف زمانی ثانیه، دقایق، ساعت، روزهاو هفته ها. همچنین نحوه استفاده را یاد خواهید گرفت خرد کردن کتابخانه برای محاسبه تعداد ماه یا سال ها بین دو تاریخ
تابع difftime() در R چگونه کار می کند؟
ساده ترین راه برای محاسبه اختلاف زمانی در R، استفاده از بومی است difftime() عملکرد.
در اینجا نحو اصلی از است difftime() تابع در R:
difftime(time_start, time_end, units="days")
جایی که:
- زمان شروع رشته ای است که تاریخ شروع را نشان می دهد، مانند “2022-05-19 11:03:43“
- time_end رشته ای است که تاریخ پایان را نشان می دهد، مانند “2022-09-25 20:19:31“
- واحدها یک آرگومان اختیاری است که واحدهای زمانی را که تفاوت در آن محاسبه می شود را مشخص می کند. مقدار پیش فرض “روزها“.
توجه داشته باشید که واحدها محدود به ثانیه، دقایق، ساعت، روزهاو هفته ها. برای محاسبه اختلاف زمانی در ماه ها یا سال ها، باید از راه حل دیگری استفاده کنید (در ادامه در این راهنما در مورد آن بیشتر توضیح خواهیم داد)
محاسبه اختلاف زمانی در R
این بخش نحوه استفاده را به شما نشان می دهد difftime() تابعی برای محاسبه اختلاف زمانی در:
- ثانیه ها
- دقایق
- ساعت
- روزها
- هفته ها
شما همچنین نحوه استفاده را یاد می گیرید خرد کردن کتابخانه برای محاسبه اختلاف زمانی در:
بیایید به آن بپریم!
1. تفاوت زمان را بر حسب ثانیه محاسبه کنید
برای محاسبه اختلاف زمانی بین دو تاریخ در ثانیه در R:
- تاریخ شروع را مشخص کنید.
- تاریخ پایان را مشخص کنید.
- زمان را مشخص کنید واحدها پسندیدن “ثانیه“.
- زنگ زدن difftime() با این سه آرگومان عمل کنید.
به عنوان مثال:
date1 <- "2022-09-12 18:49:21" date2 <- "2022-03-21 10:34:07" # Time difference in seconds difftime(date1, date2, units="secs")
خروجی:
Time difference of 15149714 secs
2. اختلاف زمان را بر حسب دقیقه محاسبه کنید
برای محاسبه اختلاف زمانی بین دو تاریخ در دقیقه:
- تاریخ شروع را مشخص کنید.
- تاریخ پایان را مشخص کنید.
- زنگ زدن difftime() با این سه آرگومان عمل کنید.
به یاد داشته باشید که واحد زمان پیش فرض دقیقه است. بنابراین، نیازی به تعیین واحد زمانی در آن ندارید difftime() فراخوانی تابع
به عنوان مثال:
date1 <- "2022-09-12 18:49:21" date2 <- "2022-03-21 10:34:07" # Time difference in minutes difftime(date1, date2)
خروجی:
Time difference of 252495.2 mins
3. تفاوت زمان را بر حسب ساعت محاسبه کنید
برای محاسبه اختلاف زمانی بین دو تاریخ به ساعت:
- تاریخ شروع را مشخص کنید.
- تاریخ پایان را مشخص کنید.
- زمان را مشخص کنید واحدها پسندیدن “ساعت“.
- زنگ زدن difftime() با این سه آرگومان عمل کنید.
به عنوان مثال:
date1 <- "2022-09-12 18:49:21" date2 <- "2022-03-21 10:34:07" # Time difference in hours difftime(date1, date2, units="hours")
خروجی:
Time difference of 4208.254 hours
4. تفاوت زمان را بر حسب روز محاسبه کنید
برای محاسبه اختلاف زمانی بین دو تاریخ در روز:
- تاریخ شروع را مشخص کنید.
- تاریخ پایان را مشخص کنید.
- زمان را مشخص کنید واحدها پسندیدن “روزها“.
- زنگ زدن difftime() با این سه آرگومان عمل کنید.
به عنوان مثال:
date1 <- "2022-09-12 18:49:21" date2 <- "2022-03-21 10:34:07" # Time difference in days difftime(date1, date2, units="days")
خروجی:
Time difference of 175.3439 days
5. تفاوت زمان را بر حسب هفته محاسبه کنید
برای محاسبه اختلاف زمانی بین دو تاریخ در هفته در R:
- تاریخ شروع را مشخص کنید.
- تاریخ پایان را مشخص کنید.
- زمان را مشخص کنید واحدها مثل هفته ها
- زنگ زدن difftime() با این سه آرگومان عمل کنید.
به عنوان مثال:
date1 <- "2022-09-12 18:49:21" date2 <- "2022-03-21 10:34:07" # Time difference in weeks difftime(date1, date2, units="weeks")
خروجی:
Time difference of 25.04913 weeks
6. تفاوت زمان را بر حسب ماه محاسبه کنید
برای محاسبه اختلاف زمانی بین دو تاریخ در ماه در R، نمی توانید استفاده کنید difftime() روش. این به این دلیل است که difftime() کارکرد واحدهای زمانی فقط به “هفته ها” گسترش می یابد.
اما چرا اینطور است؟
محاسبه اختلاف زمانی در ماهها یا سالها دشوار است زیرا اصطلاح سال یا ماه به وضوح تعریف نشده است.
- وجود دارد 28-31 روز بعد از ماه
- می تواند هر دو را داشته باشد 365 یا 366 روزهای سال به دلیل سال های کبیسه
شما می توانید فرض کنید که یک ماه 30 روز است. اما این به یک مشکل در ماه فوریه منجر خواهد شد. به عنوان مثال، تفاوت زمانی بین 01-02-2022 و 01-03-2022 29 روز است. این یک ماه کامل در سیستم ماهانه 30 روزه نیست، اگرچه یک ماه کامل گذشته است!
برای محاسبه اختلاف طول ماه و سال، توصیه میکنم از یک کتابخانه خارجی استفاده کنید که سازنده آن ساعتها را وارد کرده است تا تاریخها به درستی کار کنند.
یک راه عالی برای محاسبه اختلاف زمانی در R، استفاده از کتابخانه lubridate است.
به عنوان مثال، بیایید از کتابخانه lubridate برای شمارش تعداد ماه های کامل بین دو تاریخ استفاده کنیم:
library(lubridate) first_date <- as.Date('2022-02-01') second_date <- as.Date('2022-04-01') diff <- interval(first_date, second_date) %/% months(1) diff
خروجی:
[1] 2
این نتیجه فوریه 28 روزه را در نظر می گیرد و به درستی تعداد ماه های کامل را 2 می کند.
7. اختلاف زمانی را بر حسب سال محاسبه کنید
وقتی صحبت از تفاوت های زمانی می شود، یک سال می تواند باعث سردرد شود. به طور سنتی، وجود دارد 365 روز در سال، در حالی که تعداد واقعی نزدیکتر است 365.25.
این کسری مهم است و باید در نظر گرفته شود. به همین دلیل زمان سنج ها یک سال کبیسه را اختراع کردند که یک سال با آن است 366 روزها. یک سال کبیسه راهی عالی برای یکنواخت کردن موارد اضافی است 0.25 روز، اما هنگام محاسبه اختلاف زمانی مشکل ایجاد می کند.
به عنوان مثال، تفاوت زمانی بین دو تاریخ در یک سال کبیسه 01-01-2020 و 31-12-2020 است 365 روزها. اگر ماشین حساب شما از عدد استفاده کرده است 365 به عنوان یک سال کامل، ماشین حساب به دروغ ادعا می کند که یک سال کامل گذشته است، حتی اگر هنوز یک روز باقی مانده باشد.
با توجه به تعریف مبهم سال، تابع difftime() نمی تواند تفاوت زمانی بین دو تاریخ را در سال محاسبه کند.
بار دیگر، مطمئنترین شرط برای محاسبه تعداد سالهای کامل بین دو تاریخ، استفاده از آن است خرد کردن کتابخانه
مثلا:
library(lubridate) first_date <- as.Date('2020-12-31') second_date <- as.Date('2020-01-01') diff <- interval(first_date, second_date) %/% years(1) diff
خروجی:
[1] 0
کتابخانه اسمیر تعداد صحیح سالهای کامل بین دو شی تاریخ را به شما می دهد.
خلاصه
امروز یاد گرفتید که چگونه از آن استفاده کنید difftime() تابع در R برای محاسبه اختلاف زمانی بین دو تاریخ.
R تعبیه شده است difftime() تابع می تواند تفاوت های زمانی بین دو تاریخ را در موارد زیر محاسبه کند:
- ثانیه ها (واحد=”ثانیه”)
- دقایق (واحد=”دقیقه”)
- ساعت (واحد=”ساعت”)
- روزها (واحد=”روز”)
- هفته ها (واحد=”هفته”)
اما نمی تواند تفاوت های زمانی را در موارد زیر محاسبه کند:
برای دریافت تفاوت زمانی در ماه ها یا سال ها، باید از کتابخانه اسمیر استفاده کنید. این کتابخانه دارای کدی است که می داند چگونه تعداد متغیر روزها را در ماه ها و سال های کبیسه محاسبه کند.
با تشکر برای خواندن. کد نویسی مبارک!
همچنین بخوانید
بهترین دوره های علوم داده پایتون