1. ホーム
  2. r

[解決済み] 年、月("yyyy-mm "フォーマット)を日付に変換する?

2023-01-06 05:02:16

質問

次のようなデータセットがあります。

Month    count
2009-01  12
2009-02  310
2009-03  2379
2009-04  234
2009-05  14
2009-08  1
2009-09  34
2009-10  2386

データ(月がx値、回数がy値)をプロットしたい。データには隙間があるので、月の情報を日付に変換したいです。試してみました。

as.Date("2009-03", "%Y-%m")

しかし、うまくいきません。何がいけないのでしょうか?それは、どうやら as.Date() は日も必要とし、日の標準値を設定することができないのですか?どの関数が私の問題を解決しますか?

どのように解決するのですか?

これを試してみてください。 (ここでは text=Lines を使用していますが、実際にはファイル名に置き換えます)。

Lines <- "2009-01  12
2009-02  310
2009-03  2379
2009-04  234
2009-05  14
2009-08  1
2009-09  34
2009-10  2386"

library(zoo)
z <- read.zoo(text = Lines, FUN = as.yearmon)
plot(z)

このデータではX軸はあまりきれいではありませんが、実際にはもっとデータがあれば大丈夫かもしれません。 ?plot.zoo .

動物園シリーズです。 z は、上で作成された "yearmon" の時間インデックスを持ち、次のようになります。

> z
Jan 2009 Feb 2009 Mar 2009 Apr 2009 May 2009 Aug 2009 Sep 2009 Oct 2009 
      12      310     2379      234       14        1       34     2386 

"yearmon" は単独でも使用できます。

> as.yearmon("2000-03")
[1] "Mar 2000"

注意

  1. "yearmon" クラスオブジェクトはカレンダー順にソートされます。

  2. これは、毎月のポイントを等間隔でプロットします。これはおそらく望まれていることでしょう。 z のインデックスを "Date" クラスに変更します。 time(z) <- as.Date(time(z)) .