R Language
lubridate
खोज…
वाक्य - विन्यास
- ymd_hms (..., शांत = FALSE, tz = "UTC", स्थान = Sys.getlocale ("LC_TIME"))
- अब (tzone = "")
- अंतराल (प्रारंभ, अंत, tzone = attr (प्रारंभ, "tzone"))
- अवधि (संख्या = पूर्ण, इकाइयों = "सेकंड", ...)
- अवधि (संख्या = पूर्ण, इकाइयाँ = "दूसरा", ...)
टिप्पणियों
CRAN से पैकेज स्थापित करने के लिए:
install.packages("lubridate")
Github से विकास संस्करण स्थापित करने के लिए:
library(devtools)
# dev mode allows testing of development packages in a sandbox, without interfering
# with the other packages you have installed.
dev_mode(on=T)
install_github("hadley/lubridate")
dev_mode(on=F)
लुब्रिडेट पैकेज पर विगनेट्स प्राप्त करने के लिए:
vignette("lubridate")
कुछ फ़ंक्शन foo
बारे में मदद पाने के लिए:
help(foo) # help about function foo
?foo # same thing
# Example
# help("is.period")
# ?is.period
एक समारोह foo
लिए उदाहरण प्राप्त करने के लिए:
example("foo")
# Example
# example("interval")
लुब्रीडेट के साथ तार से तारीखें और डेटासेट को पार्स करना
lubridate
पैकेज वर्ण स्ट्रिंग से दिनांक और lubridate
ऑब्जेक्ट को प्रारूपित करने के लिए सुविधाजनक कार्य प्रदान करता है। कार्यों के क्रमपरिवर्तन हैं
पत्र | पार्स करने के लिए तत्व | आधार आर समकक्ष |
---|---|---|
y | साल | %y , %Y |
m (y और d के साथ) | महीना | %m , %b , %h , %B |
घ | दिन | %d , %e |
ज | घंटा | %H , %I%p |
मीटर (एच और एस के साथ) | मिनट | %M |
रों | सेकंड | %S |
उदाहरण के लिए ymd()
दिन के बाद महीने के साथ वर्ष के साथ एक तारीख पार्स करने के लिए, उदाहरण के लिए "2016-07-22"
, या ymd_hms()
क्रम वर्ष, महीने, दिन, घंटे, मिनट में एक ymd_hms()
को पार्स करने के लिए, सेकंड, उदाहरण के लिए "2016-07-22 13:04:47"
।
फ़ंक्शन अतिरिक्त विभाजनों के बिना अधिकांश विभाजक (जैसे /
, -
और व्हाट्सएप) को पहचानने में सक्षम हैं। वे असंगत विभाजकों के साथ भी काम करते हैं।
खजूर
दिनांक फ़ंक्शंस कक्षा Date
की एक वस्तु लौटाते हैं।
library(lubridate)
mdy(c(' 07/02/2016 ', '7 / 03 / 2016', ' 7 / 4 / 16 '))
## [1] "2016-07-02" "2016-07-03" "2016-07-04"
ymd(c("20160724","2016/07/23","2016-07-25")) # inconsistent separators
## [1] "2016-07-24" "2016-07-23" "2016-07-25"
datetimes
उपयोगिता कार्य
ymd_hm
और ymd_h
सहित ymd_hm
वेरिएंट का उपयोग करके ymd_hms
पार्स किया जा सकता है। सभी datetime कार्यों एक स्वीकार कर सकते हैं tz
की है कि के समान समय क्षेत्र तर्क as.POSIXct
या strptime
, लेकिन करने के लिए जो चूक "UTC"
के बजाय स्थानीय समय क्षेत्र।
POSIXct
फ़ंक्शन कक्षा POSIXct
की एक वस्तु POSIXct
।
x <- c("20160724 130102","2016/07/23 14:02:01","2016-07-25 15:03:00")
ymd_hms(x, tz="EST")
## [1] "2016-07-24 13:01:02 EST" "2016-07-23 14:02:01 EST"
## [3] "2016-07-25 15:03:00 EST"
ymd_hms(x)
## [1] "2016-07-24 13:01:02 UTC" "2016-07-23 14:02:01 UTC"
## [3] "2016-07-25 15:03:00 UTC"
पार्सर कार्य
lubridate
भी तरह एक स्वरूपण तार के साथ datetimes पार्स करने के लिए तीन कार्य शामिल हैं as.POSIXct
या strptime
:
समारोह | आउटपुट क्लास | स्वरूपण स्ट्रिंग स्वीकार किए जाते हैं |
---|---|---|
parse_date_time | POSIXct | लचीला। strptime को % या lubridate फ़ंक्शन नाम शैली के साथ स्वीकार करेंगे, जैसे "ymd hms" । विषम डेटा के लिए आदेशों के एक वेक्टर को स्वीकार करेंगे और अनुमान लगाएंगे कि कौन सा उपयुक्त है। |
parse_date_time2 | डिफ़ॉल्ट पॉसिक्ट; अगर lt = TRUE , POSIXlt | सख्त। सीमित सेट से केवल strptime टोकन ( % साथ या बिना) स्वीकार करता है। |
fast_strptime | डिफ़ॉल्ट POSIXlt; अगर lt = FALSE , POSIXct | सख्त। सीमित सेट से केवल % -delimited strptime टोकन को सीमांकक ( - , / , : , आदि) के साथ स्वीकार करता है। |
x <- c('2016-07-22 13:04:47', '07/22/2016 1:04:47 pm')
parse_date_time(x, orders = c('mdy Imsp', 'ymd hms'))
## [1] "2016-07-22 13:04:47 UTC" "2016-07-22 13:04:47 UTC"
x <- c('2016-07-22 13:04:47', '2016-07-22 14:47:58')
parse_date_time2(x, orders = 'Ymd HMS')
## [1] "2016-07-22 13:04:47 UTC" "2016-07-22 14:47:58 UTC"
fast_strptime(x, format = '%Y-%m-%d %H:%M:%S')
## [1] "2016-07-22 13:04:47 UTC" "2016-07-22 14:47:58 UTC"
parse_date_time2
और fast_strptime
लिए एक तेज C पार्सर का उपयोग करते हैं।
टोकन स्वरूपण के लिए देखें ?parse_date_time
लुब्रिडेट में पार्सिंग की तारीख और समय
लुब्रिडेट तारीखों में चरित्र के तार को पार्स करने के लिए ymd()
कार्यों की श्रृंखला प्रदान करता है। पत्र y, m, और d वर्ष, महीने और तिथि-समय के दिन के तत्वों के अनुरूप हैं।
mdy("07-21-2016") # Returns Date
## [1] "2016-07-21"
mdy("07-21-2016", tz = "UTC") # Returns a vector of class POSIXt
## "2016-07-21 UTC"
dmy("21-07-2016") # Returns Date
## [1] "2016-07-21"
dmy(c("21.07.2016", "22.07.2016")) # Returns vector of class Date
## [1] "2016-07-21" "2016-07-22"
लुब्रिडेट में तारीख और समय का हेरफेर
date <- now()
date
## "2016-07-22 03:42:35 IST"
year(date)
## 2016
minute(date)
## 42
wday(date, label = T, abbr = T)
# [1] Fri
# Levels: Sun < Mon < Tues < Wed < Thurs < Fri < Sat
day(date) <- 31
## "2016-07-31 03:42:35 IST"
# If an element is set to a larger value than it supports, the difference
# will roll over into the next higher element
day(date) <- 32
## "2016-08-01 03:42:35 IST"
instants
एक पल समय में एक विशिष्ट क्षण है। किसी भी तारीख-समय की वस्तु जो समय के एक क्षण को संदर्भित करती है, एक पल के रूप में पहचानी जाती है। यह जांचने के लिए कि कोई वस्तु तात्कालिक है या नहीं, is.instant
उपयोग is.instant
।
library(lubridate)
today_start <- dmy_hms("22.07.2016 12:00:00", tz = "IST") # default tz="UTC"
today_start
## [1] "2016-07-22 12:00:00 IST"
is.instant(today_start)
## [1] TRUE
now_dt <- ymd_hms(now(), tz="IST")
now_dt
## [1] "2016-07-22 13:53:09 IST"
is.instant(now_dt)
## [1] TRUE
is.instant("helloworld")
## [1] FALSE
is.instant(60)
## [1] FALSE
अंतराल, अवधि और अवधि
अंतराल लुब्रिडेट में टाइमपास को रिकॉर्ड करने का सबसे सरल तरीका है। एक अंतराल समय की अवधि है जो दो विशिष्ट उदाहरणों के बीच होता है।
# create interval by substracting two instants
today_start <- ymd_hms("2016-07-22 12-00-00", tz="IST")
today_start
## [1] "2016-07-22 12:00:00 IST"
today_end <- ymd_hms("2016-07-22 23-59-59", tz="IST")
today_end
## [1] "2016-07-22 23:59:59 IST"
span <- today_end - today_start
span
## Time difference of 11.99972 hours
as.interval(span, today_start)
## [1] 2016-07-22 12:00:00 IST--2016-07-22 23:59:59 IST
# create interval using interval() function
span <- interval(today_start, today_end)
[1] 2016-07-22 12:00:00 IST--2016-07-22 23:59:59 IST
अवधि दो इंस्टेंट के बीच होने वाले समय की सटीक मात्रा को मापती है।
duration(60, "seconds")
## [1] "60s"
duration(2, "minutes")
## [1] "120s (~2 minutes)"
नोट: हफ्तों से बड़ी इकाइयों का उपयोग उनकी परिवर्तनशीलता के कारण नहीं किया जाता है।
अवधि dseconds
, dminutes
और अन्य अवधि सहायक कार्यों का उपयोग करके बनाई जा सकती है।
पूरी सूची के लिए चलाएँ ?quick_durations
।
dseconds(60)
## [1] "60s"
dhours(2)
## [1] "7200s (~2 hours)"
dyears(1)
## [1] "31536000s (~365 days)"
नए इंस्टेंट को प्राप्त करने के लिए ड्यूरेशन को घटाया और इंस्टेंट में जोड़ा जा सकता है।
today_start + dhours(5)
## [1] "2016-07-22 17:00:00 IST"
today_start + dhours(5) + dminutes(30) + dseconds(15)
## [1] "2016-07-22 17:30:15 IST"
अंतराल से अवधि बनाई जा सकती है।
as.duration(span)
[1] "43199s (~12 hours)"
पीरियड्स घड़ी के समय में होने वाले बदलाव को मापते हैं जो दो इंस्टेंट के बीच होता है।
काल का उपयोग कर बनाया जा सकता है period
समारोह के रूप में अच्छी तरह से जैसे अन्य सहायक कार्यों seconds
, hours
, आदि अवधि सहायक काम करता है, भागो की एक पूरी सूची प्राप्त करने के लिए ?quick_periods
।
period(1, "hour")
## [1] "1H 0M 0S"
hours(1)
## [1] "1H 0M 0S"
period(6, "months")
## [1] "6m 0d 0H 0M 0S"
months(6)
## [1] "6m 0d 0H 0M 0S"
years(1)
## [1] "1y 0m 0d 0H 0M 0S"
is.period
फ़ंक्शन का उपयोग यह जांचने के लिए किया जा सकता है कि क्या ऑब्जेक्ट एक अवधि है।
is.period(years(1))
## [1] TRUE
is.period(dyears(1))
## [1] FALSE
राउंडिंग डेट्स
now_dt <- ymd_hms(now(), tz="IST")
now_dt
## [1] "2016-07-22 13:53:09 IST"
round_date()
एक दिनांक-समय ऑब्जेक्ट लेता है और इसे निर्दिष्ट समय इकाई के निकटतम पूर्णांक मान पर गोल करता है।
round_date(now_dt, "minute")
## [1] "2016-07-22 13:53:00 IST"
round_date(now_dt, "hour")
## [1] "2016-07-22 14:00:00 IST"
round_date(now_dt, "year")
## [1] "2017-01-01 IST"
floor_date()
एक दिनांक-समय ऑब्जेक्ट लेता है और इसे निर्दिष्ट टाइम यूनिट के निकटतम पूर्णांक मान तक राउंड करता है।
floor_date(now_dt, "minute")
## [1] "2016-07-22 13:53:00 IST"
floor_date(now_dt, "hour")
## [1] "2016-07-22 13:00:00 IST"
floor_date(now_dt, "year")
## [1] "2016-01-01 IST"
ceiling_date()
एक दिनांक-समय ऑब्जेक्ट लेता है और इसे निर्दिष्ट समय इकाई के निकटतम पूर्णांक मान तक गोल करता है।
ceiling_date(now_dt, "minute")
## [1] "2016-07-22 13:54:00 IST"
ceiling_date(now_dt, "hour")
## [1] "2016-07-22 14:00:00 IST"
ceiling_date(now_dt, "year")
## [1] "2017-01-01 IST"
अवधि और अवधि के बीच अंतर
अवधि के विपरीत, पीरियड्स को लीप सेकंड, लीप डेज और डीएसटी में बदलाव जैसे घटनाओं को जाने बिना घड़ी को सही ढंग से मॉडल करने के लिए इस्तेमाल किया जा सकता है।
start_2012 <- ymd_hms("2012-01-01 12:00:00")
## [1] "2012-01-01 12:00:00 UTC"
# period() considers leap year calculations.
start_2012 + period(1, "years")
## [1] "2013-01-01 12:00:00 UTC"
# Here duration() doesn't consider leap year calculations.
start_2012 + duration(1)
## [1] "2012-12-31 12:00:00 UTC"
समय क्षेत्र
with_tz
एक दिनांक-समय देता है क्योंकि यह एक अलग समय क्षेत्र में दिखाई देगा।
nyc_time <- now("America/New_York")
nyc_time
## [1] "2016-07-22 05:49:08 EDT"
# corresponding Europe/Moscow time
with_tz(nyc_time, tzone = "Europe/Moscow")
## [1] "2016-07-22 12:49:08 MSK"
force_tz
एक नया दिनांक क्षेत्र में x के रूप में एक ही समय घड़ी है जो दिनांक-समय देता है।
nyc_time <- now("America/New_York")
nyc_time
## [1] "2016-07-22 05:49:08 EDT"
force_tz(nyc_time, tzone = "Europe/Moscow") # only timezone changes
## [1] "2016-07-22 05:49:08 MSK"