खोज…


वाक्य - विन्यास

  • 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"


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow