কীভাবে একটি এক্সটিএস সময় সিরিজের পুনরায় নমুনা করবেন?


9

আমার একটি অনিয়মিতভাবে ব্যবধানযুক্ত XTSসময় সিরিজ রয়েছে ( POSIXctসূচকের ধরণের মান সহ )।

আমি 10 মিনিটের বিরতিতে বলি যে কীভাবে একটি নতুন সময় সিরিজ তৈরি করতে পারি, তবে প্রতিটি নমুনার মুহুর্তটি একটি বৃত্তাকার সাথে সংযুক্ত থাকে (13:00:00, 13:10:00, 13:20:00, ...) । যদি একটি পুনর্নির্মাণের মুহুর্তটি মূল সিরিজের মানের উপর না পড়ে তবে আমি আগেরটি নিতে চাই।


আপনি একটি উদাহরণ দিতে পারেন?
জোশুয়া উলিরিচ

2
যদি কখনও এক্সটিএস এ FAQ এর তালিকা থাকে তবে এটি উচ্চ স্কোর করবে। দয়া করে এখানে চারপাশে দেখুন, সন্ধান করুন [r] xtsএবং আর-সিগ-ফিনান্স সংরক্ষণাগারটি ব্যবহার করুন।
ডার্ক এডেলবুয়েটেল

উত্তর:


5
library(xts)
?endpoints

এই ক্ষেত্রে

tmp=zoo(rnorm(1000), as.POSIXct("2010-02-1")+(1:1000)*60)
tmp[endpoints(tmp, "minutes", 20)]

প্রতি 20 মিনিটে সাবসামেল করতে। এছাড়াও আপনি চেক আউট করতে চাইতে পারেন to.minutes, to.dailyইত্যাদি


এখানে কেবল একটি ছোট সমস্যা রয়েছে - যদি আমার ..., 14:59, 15:00, ..., এটি 14:59 পুনরুদ্ধার করবে এবং 15:00 আমার পছন্দ অনুযায়ী নয়। এটি 15:00 ফেরত দেওয়ার কোনও উপায় আছে কি? আমি এর মতো কিছু চেষ্টা করেছি "seconds", 3601, তবে এটি কার্যকর হয় না
মেহ

যেহেতু টাইমস্ট্যাম্পগুলি অনিয়মিত সেগুলি কেবলমাত্র ডেটার পয়েন্টের মধ্যে ডিটি-তে গ্যারান্টি দিতে পারে। আসল পয়েন্টগুলি সিরিজের শুরুর পয়েন্টের উপর নির্ভর করে। আপনি যদি আপনার প্রারম্ভিক বিন্দুটিকে একটি বৃত্তান্তে স্থির করেন তবে এটি আপনার পছন্দ মতো আচরণ করবে ... (ধরে নেওয়া আপনার প্রতি এন মিনিটে পয়েন্ট রয়েছে)
ডাঃ জি

প্রথম বিন্দু উপর নির্ভরশীল হচ্ছে - এই ঠিক আমি চাই না যা চান তা
সাধরণ

2

আপনি এখনও যা করার চেষ্টা করছেন তা আমি এখনও নিশ্চিত নই এবং আমি এখনও মনে করি একটি উদাহরণ সাহায্য করবে তবে আমি ভেবেছিলাম যে আপনার আগ্রহী হতে পারে align.time

# Compare this:
tmp[endpoints(tmp, "minutes", 20)]
# with this:
align.time( tmp[endpoints(tmp, "minutes", 20)], n=60*20 )

যে কোনও সময় সিরিজ বিবেচনা করুন - বাইরে তাপমাত্রা। আমি জানতে চাই 11:00 প্রাচীর ঘড়ির দিকে তাপমাত্রা এর 12:00 প্রাচীর ঘড়ির দিকে, কি চাই, .... আমি পরে আপনার উদাহরণ চেক করব যদি এটা এই আছে দেখতে
সাধরণ

যতদূর আমি বলতে পারি, এন্ডপয়েন্টগুলি ব্যবহারের পরে অ্যালাইন.টাইমের এই প্রয়োগটি আদল যা চেয়েছিল তা হল (মূল প্রশ্নে "পূর্ববর্তীটি" নেওয়ার বিষয়ে তাঁর উল্লেখ ব্যতীত)। যাইহোক, এটি আমি চেয়েছিলাম তাই, তাই ধন্যবাদ, জোশুয়া।
রাহুল সাভানী

অ্যালাইন.টাইমের কোনও সংস্করণ আছে তবে রাউন্ড ডাউন করার জন্য? এটি আমি যা চাই ঠিক তা করে কিন্তু এটির জন্য। (বিটিডাব্লু, আমার কাছে একটি অপরিশোধিত উপায় আছে: যদি এ 1 আমার এক্সটিএস অবজেক্ট হয় এবং আমি মিনিটের বিরতিতে যেতে চাই তবে index(a1)=index(a1)-60;align.time(a1,60))
ড্যারেন কুক

1
@ ড্যারেনকুক: এটির কোনও সংস্করণ align.timeনেই। নির্বিশেষে, পর্যবেক্ষণগুলি সংঘটন হওয়ার আগের সময়ের সাথে সারিবদ্ধ করা খারাপ ধারণা বলে মনে হচ্ছে ।
জোশুয়া উলিরিচ

2
@ জোশুয়া অলিরিচ একটি উদাহরণ হ'ল আর্থিক টিক্সকে একটি বারে রূপান্তর করা। 08:00 08:00:00 থেকে 08:00:59 মিনিটের প্রতিনিধিত্ব করে। 08:00 একটি ঘন্টা বার হিসাবে 08:00:00 থেকে 08:59:59 উপস্থাপন করে। (এটি প্রতিদিনের বারগুলি কীভাবে কাজ করে তার সাথে সামঞ্জস্যপূর্ণ, যেখানে ২০১১-১১-২৫১১ -২০১১-১২-এ ট্রেডিংয়ের প্রতিনিধিত্ব করে ২০১১-১১-২৪-এ নয়।) আমি মনে করি ওপি একই আচরণ করেছিল।
ড্যারেন কুক

1

যদি aদ্বিতীয় রেজোলিউশনে প্রবেশকারীগুলির সাথে এক্সটি অবজেক্ট হয় তবে এটি সমস্ত সেকেন্ডে ছিটকে যায়: সূচক (ক) = ট্রাঙ্ক (সূচক (ক), "মিনিট")

আপনি এটি "ঘন্টা" রেজোলিউশনেও গোল করতে ব্যবহার করতে পারেন। তবে 10 মিনিট সমর্থিত নয়। তার জন্য আপনাকে এটি করতে হবে:

x=as.POSIXlt(index(a))
x$sec[]=0;x$min[]=x$min[]%/%10
index(a)=x

বা a=align.time.down(a,600)যেখানে আপনি সংজ্ঞায়িত করেছেন:

align.time.down=function(x,n){index(x)=index(x)-n;align.time(x,n)}

('আমার নিজের স্ক্রিপ্টে শেষ পছন্দটি নিয়ে গেছেন))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.