1

1997 年から 2009 年までのデータを含むデータセットがあり、日付に従ってデータをサブセット化したいと考えています。

私が書いたコードは次のとおりです。

creek <- read.csv("wolfcreek.csv")
library(ggplot2)
creek[1:10,]
colnames(creek) <- c("date","flow")
creek$date <- as.Date(creek$date, "%m/%d/%Y")

サブセットの作成に使用したコードは次のとおりです。

creek1 <- subset(creek, as.Date(date) > (01-01-2000) & as.Date(date) <(01-01-2009))

しかし、creek1 の概要を見ようとすると、

> creek1
[1] date flow
<0 rows> (or 0-length row.names)

ここで私が間違っていたことを誰かに教えてもらえますか?

私が使用したデータセットは、https://www.dropbox.com/s/eqpena3nk82x67e/creek.csvにあります。

どうもありがとう。

敬具、 ジババ

4

2 に答える 2

2

日付を、日付ではなく、-2000および-2009(1-1-2000および1-1-2009)の数値と比較しています。

creek1 <- subset(creek, date > as.Date('01-01-2000', '%m-%d-%Y') & date < as.Date('01-01-2009', '%m-%d-%Y'))
于 2013-02-09T20:07:11.333 に答える
2

列の日付を変換する必要はありません。すでにクラスDateにあります。次に、dateMinとdateMaxで文字列を日付に強制変換する必要があります。

ここでは、正しい形式で文字列を指定します。それ以外の場合は、使用する必要がありますformat(@Mathewの回答のように)

subset(creek, date > as.Date("2000-01-01") & date < as.Date("2009-01-01"))

xtsここでは、彼の高速サブセット化と簡潔な構文にパッケージを使用します

library(xts)
dat.xts <- as.xts(creek$flow, order.by=creek$date)
dat.xts['2000-01/2009-01'] ## powerful and fast!!

quantmodたとえば、時系列であるため、適切なパッケージを使用して処理する必要があります。ここでサブセット化し、プロットします(時系列をズームします)

 chart_Series(dat.xts['2000-01/2000-09'])

ここに画像の説明を入力してください

于 2013-02-09T20:07:59.907 に答える