2017-08-08 46 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)