আমার একটি টাইম সিরিজ রয়েছে এবং আমি এটি সূচনা, শেষ এবং ফ্রিকোয়েন্সি সংরক্ষণ করে সময় সিরিজ হিসাবে রাখার সময় এটিকে সাবসেট করতে চাই।
উদাহরণস্বরূপ, ধরা যাক আমার একটি সময় সিরিজ রয়েছে:
> qs <- ts(101:110, start=c(2009, 2), frequency=4)
> qs
Qtr1 Qtr2 Qtr3 Qtr4
2009 101 102 103
2010 104 105 106 107
2011 108 109 110
এখন আমি এটি সাবসেট করব:
> qs[time(qs) >= 2010 & time(qs) < 2011]
[1] 104 105 106 107
লক্ষ্য করুন যে আমি সঠিক ফলাফল পেয়েছি, তবে আমি সময় সিরিজ থেকে "র্যাপিংস" হারিয়েছি (যথা শুরু, শেষ, ফ্রিকোয়েন্সি।)
আমি এই জন্য একটি ফাংশন খুঁজছি। কোনও টাইম সিরিজ সাবসেট করা কি সাধারণ দৃশ্য নয়? যেহেতু আমি এখনও একটি খুঁজে পাইনি, আমি এখানে একটি ফাংশন লিখেছি:
subset.ts <- function(data, start, end) {
ks <- which(time(data) >= start & time(data) < end)
vec <- data[ks]
ts(vec, start=start(data) + c(0, ks[1] - 1), frequency=frequency(data))
}
আমি উন্নতি বা এটি করার ক্লিনার উপায়গুলি সম্পর্কে শুনতে চাই। বিশেষত, আমি হার্ড কোডিং শুরু এবং শেষের উপায়টি পছন্দ করি না। আমি বরং ব্যবহারকারীকে একটি নির্বিচারে বুলিয়ান শর্ত নির্দিষ্ট করতে দেব।