উত্তর:
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- দ্বিতীয়টি আপনি ব্যবহার করতে পারেন এমন স্থানধারক চরিত্রগুলি ব্যাখ্যা করে।
vectorএন উপাদান থাকে তবে একটিতে 1k তারিখ বলতে পারি vector?
date1খেজুরের ভেক্টরও হতে পারে।
লুব্রিড প্যাকেজটি এই জাতীয় জিনিসটির জন্য আশ্চর্যজনক:
> 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