Попытка использовать оконную функцию от R - PullRequest
0 голосов
/ 11 ноября 2018

Это мой фрейм данных:

structure(list(dates = structure(c(16162, 16161, 16160, 16157, 
16156, 16155, 16154, 16153, 16150, 16149, 16148, 16147, 16146, 
16143, 16142, 16141, 16140, 16139, 16136, 16135, 16134, 16129, 
16128, 16127, 16126, 16125, 16122, 16121, 16120, 16119, 16118, 
16115, 16114, 16113, 16112, 16111, 16108, 16107, 16106, 16105, 
16104, 16101, 16100, 16099, 16098, 16097, 16094, 16093, 16092, 
16091), class = "Date"), VALE5 = c(28.29, 28.26, 28.35, 27.81, 
27.85, 27.5, 27.61, 27.16, 27.2, 26.64, 26.57, 26.55, 26, 26.1, 
25.9, 26.46, 26.1, 26.37, 27.09, 28.11, 28.11, 29.09, 29.31, 
29.02, 29, 29.76, 30.61, 30.59, 30.9, 30.6, 30.74, 30.96, 30.76, 
30.79, 30.77, 30.44, 30.66, 30.8, 29.94, 29.58, 29.1, 30, 29.76, 
29.96, 28.88, 28.54, 28.63, 28.15, 28.91, 28.48)), row.names = c(NA, 
50L), class = "data.frame")

Я хочу установить функцию окна следующим образом:

window(sample,start=c(2014,03,26),end=c(2014,04,02))

Что не так с моим sample фреймом данных? Столбец дат имеет класс Date. Недостаточно использовать функцию window?

Как я могу это исправить?

Большое спасибо.

1 Ответ

0 голосов
/ 11 ноября 2018

1) window.zoo window предназначен для объектов временных рядов, таких как ts и zoo. ts не подходит для ежедневных данных, но вы можете преобразовать sample в объект зоопарка, а затем запустить его так:

library(zoo)

z <- read.zoo(sample)
window(z, start = "2014-03-26", end = "2014-04-02")

дает:

           BBAS3 BBDC3 VALE5
2014-03-26 21.11 31.53 27.50
2014-03-27 22.51 33.38 27.85
2014-03-28 22.22 33.20 27.81
2014-03-31 22.80 33.59 28.35
2014-04-01 22.78 33.75 28.26
2014-04-02 22.85 33.82 28.29

2) подмножество Этот базовый подход также будет работать, но не использует window:

subset(sample, dates >= "2014-03-26" & dates <= "2014-04-02")

3) xts С xts это обозначение может использоваться. z из (1) выше:

library(xts)

x <- as.xts(z)
x["2014-03-26/2014-04-02"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...