जवाबों:
format()कक्षा की वस्तुओं के लिए विधि का उपयोग करें "yearmon"। यहाँ आपकी उदाहरण तिथि है (ठीक से बनाई गई है!)
date1 <- as.yearmon("Mar 2012", "%b %Y")
फिर हम आवश्यकतानुसार तारीख भागों को निकाल सकते हैं:
> format(date1, "%b") ## Month, char, abbreviated
[1] "Mar"
> format(date1, "%Y") ## Year with century
[1] "2012"
> format(date1, "%m") ## numeric month
[1] "03"
इन्हें पात्र के रूप में लौटाया जाता है। जहां उपयुक्त हो, as.numeric()यदि आप वर्ष या सांख्यिक महीने को सांख्यिक चर के रूप में चाहते हैं, उदाहरण के लिए लपेटें
> as.numeric(format(date1, "%m"))
[1] 3
> as.numeric(format(date1, "%Y"))
[1] 2012
देखें ?yearmonऔर ?strftimeविवरण के लिए - उत्तरार्द्ध स्थानधारक वर्णों का वर्णन करता है जिन्हें आप उपयोग कर सकते हैं।
vectorn तत्वों में से एक है, तो 1k तिथियों को एक में बताएं vector?
date1तारीखों का एक वेक्टर भी हो सकता है।
Lubridate पैकेज की बात इस तरह के अद्भुत है:
> require(lubridate)
> month(date1)
[1] 3
> year(date1)
[1] 2012
lubridateपैकेज है और इसे स्थापित करने की कोशिश की है और वर्ष (तिथि) का उपयोग किया है, लेकिन यह वर्ष के बजाय दिन देता है यह केवल तारीखों पर काम करता है जिसका प्रारूप "2015-05" है -06 ”?
मुझे पता है कि ओपी zooयहाँ उपयोग कर रहा है, लेकिन मुझे इस tsसमस्या के लिए मानक समाधान के लिए यह धागा गुग्लिंग मिला । तो मैंने सोचा कि मैं भी के लिए एक zooमुक्त जवाब जोड़ देंगे ts।
# create an example Date
date_1 <- as.Date("1990-01-01")
# extract year
as.numeric(format(date_1, "%Y"))
# extract month
as.numeric(format(date_1, "%m"))
आप उपयोग कर सकते हैं format:
library(zoo)
x <- as.yearmon(Sys.time())
format(x,"%b")
[1] "Mar"
format(x,"%Y")
[1] "2012"
as.numeric(format(x, "%m"))उदाहरण के लिए महीने के लिए एक संख्यात्मक के रूप में चाहते हैं ।
बड़े वैक्टर के लिए:
y = as.POSIXlt(date1)$year + 1900 # x$year : years since 1900
m = as.POSIXlt(date1)$mon + 1 # x$mon : 0–11
POSIXltवस्तु प्रदान करता है जो चिड़ियाघर पैकेज को अनावश्यक बनाता है
यह सवाल ठीक-ठीक नहीं बताया गया है कि आउटपुट क्या अपेक्षित है, लेकिन यह मानते हुए कि महीने के लिए आप महीने की संख्या (जनवरी = 1) चाहते हैं और उस वर्ष के लिए आप संख्यात्मक 4 अंक का वर्ष चाहते हैं, तो यह मानते हुए कि हमने अभी प्रश्न में कोड चलाया है:
cycle(date1)
## [1] 3
as.integer(date1)
## [1] 2012