web-dev-qa-db-ja.com

Rの日付範囲で設定されたサブセットdata.table

Data.tableに、日付範囲でサブセット化したい大きなデータセットがあります。私のデータセットは次のようになります。

testset <- data.table(date=as.Date(c("2013-07-02","2013-08-03","2013-09-04",
                                     "2013-10-05","2013-11-06")), 
                      yr = c(2013,2013,2013,2013,2013), 
                      mo = c(07,08,09,10,11),
                      da = c(02,03,04,05,06), 
                      plant = LETTERS[1:5], 
                      product = as.factor(letters[26:22]), 
                      rating = runif(25))

yrmo、またはda列を使用せずに、as.Date列から日付範囲を直接選択できるようにしたいと思います。現在、私はmoによってサブセット化していますが、特に年が切り替わるときは非常に不格好です。これを行うよりエレガントな方法は、私の人生を限りなく楽にします。

前もって感謝します!

26
black_sheep07

何故なの:

testset[date>="2013-08-02" & date<="2013-11-01"]
31
Troy

こちらもご覧ください:

?`%between%`

このように動作します:

testset[date %between% c("2013-08-02", "2013-11-01")]
16
Daniel Krizian

あなたはサブセットをしていると述べましたが、Rでサブセットfnを使用しているかどうかは明確ではありません。

Rコンソールに?subsetと入力して、Rのサブセット()関数の詳細を確認します。この関数は、「条件を満たすサブセットのベクトル、マトリックス、またはデータフレームを返します」。次に、上記のトロイが投稿した方法の一部を使用して、日付範囲を選択します

thisYear <- subset(testset, date > "2015-01-01" & date < "2015-12-31")
4
typeofgraphic