1

私はRを始めたばかりで、時系列データで少し行き詰まりました。

「zoo」形式の時系列(日付と値)があり、イベントが発生したときに十字で注釈を付けたいと思います。イベントは不規則で、csv形式です(日付のみ、場合によっては繰り返されます)。

日付などをRが受け入れる形式に読み取ることができましたが、メインの時系列をグラフ化する手段がなく、セカンダリイベントに注釈が付けられていますか?

更新: 申し訳ありませんが、以前にこれを見逃しました-以下は私が使用しているデータの種類です:

price <- get.hist.quote(instrument = "msft", quote = c("Cl", "Vol"))

(検索語の)ツイートの数をこれと比較したいのですが、次の形式のむらのあるデータしかありません。

"February 28, 2010"
"February 20, 2010"
"February 20, 2010"
"August 21, 2009"

いくつか繰り返されます。これまでのところ、いくつかのクリーニング(つまり、日付のタプル、オカレンス)を行うためのPythonスクリプトを作成することができましたが、Rを使用して生データを処理できることを望んでいましたか?

どうもありがとう

4

2 に答える 2

2

動物園シリーズ、価格、および dd.zoo (dd.zoo は、zoo オブジェクトとしての dd.character の各日付の出現回数) を作成し、それらをバインドして plot.zoo を使用します。

library(zoo)
library(tseries)

price <- get.hist.quote(instrument = "msft", quote = c("Cl", "Vol"))

dd.character <- c("February 28, 2010", "February 20, 2010",
    "February 20, 2010", "August 21, 2009")
dd.Date <- as.Date(dd.character, "%B %d, %Y")
dd.zoo <- aggregate(zoo(dd.Date), dd.Date, length)

plot(cbind(price$Close, dd.zoo), type = c("l", "h"), heights = c(3, 1))

どの日付が dd.character にあるかを示す垂直線でオーバーレイされた Close を表示したいだけの場合の別の可能性は次のとおりです。

plot(price$Close)
abline(v = time(dd.zoo))
于 2010-06-14T04:07:56.013 に答える
2

データ サンプルを提供するとより正確な回答が得られますが、次の 2 つの一般的なオプションがあります。

既存のplot.zoo()関数を使用して、(たとえば)text()関数を使用してプロットが終了した後に注釈を追加できます。またはggplot2、 を使用して、プロットを作成し、注釈を追加するという同様のアプローチを取ることができます (ただし、zooオブジェクトを入力としてネイティブに受け入れません)。

または、この目的を念頭に置いて設計された多くの関数があり、入力として受け入れchartSeriesます。quantmodzoo

編集:

質問に投稿したデータの処理方法に関する簡単なコメント。2 番目の日付のセットは、zoo オブジェクトに変換し (「つぶやき」という単語など、何らかの記号をデータとして使用する可能性があります)、元のシリーズとマージする必要があります。したがって、これらのまれなイベントを表す追加の列が時系列に表示されます。ほとんどの場合、この列は になりますNA

于 2010-06-09T15:27:46.883 に答える