質問: ``` > as.Date("2017/12/25") [1] "2017-12-25" > as.Date("2017/12") charToDate(x) でエラー: 文字列は標準的な曖昧さのない書式にはなっていません > ``` 上記、年と月のみの日時データを作成したいのですが 方法を教えてくださいお願いします。
回答: Date (日付)は日本語が示すように日を単位とする型ですから、月を単位とする型(年月のみ)を表現するのに適していません。 どの月も最初の日は"1日"ですから、月の初日で年月を代表させるといった工夫(方便)が必要です。 例えばseq関数を使って、 ``` yyyymm <- seq(as.Date("2018/01/01"), as.Date("2018/12/31"), "months") ``` "2018-01-01" "2018-02-01" "2018-03-01" "2018-04-01" "2018-05-01" "2018-06-01" ・・・ "2018-11-01" "2018-12-01"というベクトルを作り、 これらを 2018/01, 2018/02 ... 2018/12 の年月のデータ(日時データ)として扱うというふうに。 === もちろん、年月のクラス(ここでは YearMonthクラスとします)を自分で定義しても良いと思います。Dateクラスを参考にすれば、そんなに難しくないと思います。 > > > > > > as.YearMonth("2017/12") > > > > [1] "2017-12" > > > > > > > > >