EPL2011_12
というデータセットがあります。日付ごとに元のデータをサブセットして、新しいデータセットを作成したいと思います。日付はDate
という名前の列にあります。日付はDD-MM-YY形式です。
私が試してみました
EPL2011_12FirstHalf <- subset(EPL2011_12, Date > 13-01-12)
そして
EPL2011_12FirstHalf <- subset(EPL2011_12, Date > "13-01-12")
ただし、毎回このエラーメッセージが表示されます。
Warning message: In Ops.factor(Date, 13- 1 - 12) : > not meaningful for factors
私はそれがRが数字の代わりにテキストのように扱っていることを意味し、なぜそれが機能しないのでしょうか?
まあ、ダッシュが入っているので明らかに数字ではありません。エラーメッセージと2つのコメントは、それが要因であることを示していますが、コメンテーターは明らかに待機してメッセージを流し込んでいるようです。
EPL2011_12$Date2 <- as.Date( as.character(EPL2011_12$Date), "%d-%m-%y")
その後、これを行うことができます:
EPL2011_12FirstHalf <- subset(EPL2011_12, Date2 > as.Date("2012-01-13") )
R日付関数は、形式が「YYYY-MM-DD」または「YYYY/MM/DD」であると想定します。同様のクラスを比較する必要があります:日付から日付、または文字から文字。
日付変数で最初に行うべきことは、Rがそれを日付として読み取ることを確認することです。これを行うには、Dateという変数(ベクトル/列)に対して、EPL2011_12というデータフレームに入力します。
class(EPL2011_12$Date)
出力には[1]「日付」と表示されます。そうでない場合は、入力して日付としてフォーマットする必要があります
EPL2011_12$Date <- as.Date(EPL2011_12$Date, "%d-%m-%y")
上記の日付形式( "%d-%m-%y")のハイフンは、スラッシュ( "%d /%m /%y")にすることもできます。 Rが日付として認識していることを確認します。そうでない場合は、別のフォーマットコマンドを試してください
EPL2011_12$Date <- format(EPL2011_12$Date, format="%d/%m/%y")
日付形式になったら、subset
コマンドを使用するか、角かっこを使用できます。
WhateverYouWant <- EPL2011_12[EPL2011_12$Date > as.Date("2014-12-15"),]