2017-08-08 10 views
0

我有一個DF與這樣一個ETF的每日價格:的R - 在日期格式的行子集

   TICKER OPEN  HIGH CLOSE 
2017-01-01 BOVA11 55.30 55.50 55.20 

我行名指定日期(YYMMDD),我該如何使用基本R命令來這個數據框從行2017-01-01到2017-01-31的子集?

感謝

+2

見'Date' - 日期應使用數字格式而不是字符串行名進行編碼。不過,我想你可以使用DF [rownames(DF)> =「2017-01-01」&yada_yada,]' – Frank

+1

謝謝!正如你所說,我想我應該再次把日期列在列中。我正在做的是保持類似於quantmod函數getSymbols的數據。 – Malakias

回答

0

我打算出去走一趟,猜測DF實際上是一個xts對象。如果是這樣的話,你可以使用一個字符串,它由開始和結束日期,由正斜槓(/)分離指日期範圍:

jan2017_data = DF["2017-01-01/2017-01-31"] 
0

他們都開始2017-01所以只用grep上:

DF[grep("2017-01", rownames(DF)), ] 

這在下面的說明輸入給:

  TICKER OPEN HIGH CLOSE 
2017-01-01 BOVA11 55.3 55.5 55.2 
2017-01-15 BOVA11 55.3 55.5 55.2 
2017-01-31 BOVA11 55.3 55.5 55.2 

注:以可重現形式顯示的輸入DF是:

Lines <- " 
      TICKER OPEN  HIGH CLOSE 
2017-01-01 BOVA11 55.30 55.50 55.20 
2017-01-15 BOVA11 55.30 55.50 55.20 
2017-01-31 BOVA11 55.30 55.50 55.20 
2017-02-01 BOVA11 55.30 55.50 55.20" 
DF <- read.table(text = Lines)