Выбор периода времени с окном в R; формат "дд / мм / гггг ч: м: с" (Windows 7)

У меня следующая проблема. Я хотел использовать следующий код, чтобы выбрать определенный период времени для ежедневных данных, например, этот:

window(Modellwind.zoo, start = as.Date("01/Jan/2001 12:00:00"), end = as.Date("4/Jan/2001 12:00:00"))

Я получаю следующее сообщение об ошибке: Ошибка в charToDate(x): строка символов не в стандартном однозначном формате

Когда я попытался найти приемлемый формат времени с помощью функции anydate, он тоже не работал:

library(anytime)
anydate("01/Jan/2001 12:00:00")

Используя следующий код:

window(Modellwind.zoo, start = as.Date("2001-01-01"), end = as.Date("2001-01-04")) 

К сожалению, я получаю следующую ошибку:

 **Warning messages:
  1: In which(in.index & all.indexes >= start & all.indexes <= end) :
  Incompatible methods ("Ops.dates", "Ops.Date") for ">="
  2: In which(in.index & all.indexes >= start & all.indexes <= end) :
  Incompatible methods ("Ops.dates", "Ops.Date") for "<="**

Следующий код включает в себя образец Modellwind.zoo.

structure(c(9.08093655399134, 6.51590181162631, 7.14637946155745, 
1.43900253813098, 6.78880326680026, 14.3182887821646, 16.3360242476697, 
16.1781018622214, 17.2200845065928, 15.6439142273171, 8.10504553259712, 
3.78898221928137, 6.78608582121557, 7.18116948778303, 5.0299974451978, 
3.49148782050232, 6.9941692218925, 8.45512766287497, 12.0693672354131, 
11.987955907515, 10.3290912344961, 13.4506307038479, 21.7989491163794, 
14.0085737502259, 14.5883127217965, 11.8048508250059, 24.7915690531695, 
19.151192329502, 12.1739793389357, 11.9410486288817, 20.9967608089789, 
15.2111025271479, 5.90129944159158, 2.42733488656831, 7.20743282263504, 
22.737089035552, 14.8219437253637, 14.0558804343021, 8.98137356225915, 
12.9592918632241, 18.4870237580719, 9.11790624009415, 2.27721679625411, 
2.61125956054424, 3.26998407545227, 5.35392572192135, 4.95193258824599, 
6.86224460928498, 9.06594694653957, 12.4505570716657, 12.740653858499, 
15.8771799446521, 12.5618618366812, 3.58848453998801, 10.9966305297934, 
4.86674413518877, 10.7031531327265, 16.2043681264107, 12.0587344974091, 
2.10949588086561), index = structure(c(18659.5, 18660.5, 18661.5, 
18662.5, 18663.5, 18664.5, 18665.5, 18666.5, 18667.5, 18668.5, 
18669.5, 18670.5, 18671.5, 18672.5, 18673.5, 18674.5, 18675.5, 
18676.5, 18677.5, 18678.5, 18679.5, 18680.5, 18681.5, 18682.5, 
18683.5, 18684.5, 18685.5, 18686.5, 18687.5, 18688.5, 18689.5, 
18690.5, 18691.5, 18692.5, 18693.5, 18694.5, 18695.5, 18696.5, 
18697.5, 18698.5, 18699.5, 18700.5, 18701.5, 18702.5, 18703.5, 
18704.5, 18705.5, 18706.5, 18707.5, 18708.5, 18709.5, 18710.5, 
18711.5, 18712.5, 18713.5, 18714.5, 18715.5, 18716.5, 18717.5, 
18718.5), .Dim = 60L, format = structure(c("dd/mm/yyyy", "h:m:s"
), .Names = c("dates", "times")), origin = c(12L, 1L, 1949L), class = c("chron", 
"dates", "times")), class = "zoo")

1 ответ

Решение

Индекс Modellwind.zoo является chron, Вот почему ваши попытки подмножества Date не увенчались успехом (ваша первая попытка не удалась, потому что as.Date ожидает %Y-%m-%d формат). Либо измените индекс на Date прежде чем вы подмножество Date:

Modellwind.zoo.Date <- Modellwind.zoo
index(Modellwind.zoo.Date) <- as.Date(index(Modellwind.zoo.Date))
window(Modellwind.zoo.Date, start = as.Date("2001-01-01"), end = as.Date("2001-01-04"))
# 2001-01-01 2001-01-02 2001-01-03 2001-01-04 
#   9.080937   6.515902   7.146379   1.43900

Или оставьте индекс как chron и подмножество chron объекты. Обратите внимание, что происхождение вашего chron индекс в Modellwind.zoo 1949-12-01, а не хронологическое происхождение по умолчанию 1990-01-01, поэтому необходимо указать его, чтобы избежать предупреждения о несовпадающем происхождении.

beg.chron <- as.chron("01/01/2001", origin = c(12, 1, 1949))
end.chron <- as.chron("01/04/2001", origin = c(12, 1, 1949))
window(Modellwind.zoo, start = beg.chron, end = end.chron)
# (01/Jan/2001 12:00:00) (02/Jan/2001 12:00:00) (03/Jan/2001 12:00:00) 
#               9.080937               6.515902               7.146379 
Другие вопросы по тегам