Преобразование из временных рядов xts в zooreg удаляет значения даты

#r #time-series #xts #zoo

#r #временные ряды #xts #зоопарк

Вопрос:

Я надеюсь, у вас хороший день!

Во-первых, вот dput моих данных:

 StreamsTempAveragextsMonthly <- structure(c(16.44, 15.7230769230769, 16.4484358974359, 16.2202307692308, 
15.6025, 16.4114423076923, 16.7097115384615, 16.32125, 16.7625, 
16.8855769230769, 17.864358974359, 18.4282692307692, 17.5625, 
16.9068269230769, 17.1636730769231, 16.8279230769231, 17.09125, 
17.8747916666667, 17.2025, 16.9225, 17, 17.75, 17.85, 17.3663461538462, 
17.4355769230769, 16.8797115384615, 17.0658717948718, 17.2979230769231, 
17.2128205128205, 17.78225, 17.48, 16.9457051282051, 18.535, 
18.5871634615385, 17.7346153846154, 18.214188034188, 16.7875, 
16.6706196581197, 17.103125, 17.3691346153846, 17.8264423076923, 
16.4920192307692, 16.8905128205128, 16.9484615384615, 17.350641025641, 
17.9035096153846, 18.1136363636364, 18.0958, 18.125, 17.3089871794872, 
17.3978205128205, 17.8078985507246, 17.6580384615385, 17.7281643356643, 
17.3222222222222, 17.6125555555556, 18.4708333333333, 18.9261363636364, 
18.3610714285714, 18.2842857142857, 17.5, 18.9776818181818, 18.2313068181818, 
18.5352272727273, 18.2314393939394, 16.8462121212121, 17.5330452568202, 
16.5851136363636, 18.3415151515152, 19.0620454545455, 17.5744047619048, 
16.7176308539945, 16.6407407407407, 16.7227272727273, 16.4184848484848, 
17.5290598290598, 17.1817965367965, 16.4547619047619, 15.9484848484848, 
15.6835902503294, 16.0388865398168, 17.0166666666667, 17.5905555555556, 
16.4290088383838, 16.2997452016069, 16.1557023172906, 16.7221212121212, 
16.857196969697, 17.3215277777778, 16.5125, 16.0752525252525, 
15.5828743589744, 16.6117845117845, 17.9668930686172, 17.5651666666667, 
16.3064442224442, 16.2763888888889, 17.650505050505, 16.8803872053872, 
17.3298611111111, 17.3772443181818, 17.0242424242424, 16.8111111111111, 
16.8055555555556, 17.232601010101, 17.8261363636364, 17.3753787878788, 
16.5777272727273, 15.8893939393939, 16.9522435897436, 16.5363636363636, 
16.6034090909091, 17.2667929292929, 18.0511363636364, 17.5534090909091, 
16.4551136363636, 17.23125, 17.5136363636364, 17.8482954545455, 
16.9869318181818, 16.4244318181818, 17.125, 16.8022727272727, 
17.4343006993007, 17.2990909090909, 17.1961538461538, 17.009375, 
16.9174747474747, 17.2710227272727, 17.6715909090909, 17.4818181818182, 
15.9962121212121, 16.5631818181818, 16.6078349282297, 17.1787878787879, 
17.0653409090909, 17.4431818181818, 17.4880681818182, 15.0918803418803, 
16.7741339869281, 17.4332792207792, 17.7990981240981, 18.0886363636364, 
16.8297619047619, 16.6851973684211, 17.2556818181818, 17.0295454545455, 
16.8240909090909, 16.7538770053476, 16.2579545454545, 15.9655757575758, 
17.1280753968254, 17.7519191919192, 17.4414335664336, 17.4557954545455, 
16.1622115384615, 16.8327651515152, 16.9667613636364, 16.672798573975, 
16.9659090909091, 17.0818181818182, 17.1822027972028, 17.8164884135472, 
17.4545454545455, 16.7771212121212, 17.8238636363636, 17.7005244755245, 
16.7160984848485, 16.341754756871, 16.6440025252525, 16.9829545454545, 
16.6630555555556, 19.1123467230444, 19.3261363636364, 17.7603021978022, 
18.8059107142857, 18.2065559440559, 18.25, 16.965, 18.0582115800866, 
17.2105637254902, 18.6762012987013, 18.4136363636364, 18.2600378787879, 
18.0003496503497, 17.9288825757576, 17.959375, 18.5164772727273, 
18.4772727272727, 18.2170454545455, 18.90625, 16.7813725490196, 
17.2660256410256, 17.0635542929293, 17.2422902097902, 17.1887820512821, 
16.1727941176471, 16.0860294117647, 18.3868181818182, 18.0298076923077, 
18.7031536293164, 18.3659090909091, 18.625, 16.7256818181818, 
17.2232600732601, 18.3319639192886, 17.9238636363636, 17.9799422799423, 
16.5837121212121, 16.100952540107, 16.9387019230769, 17.3568181818182, 
17.1753146853147, 17.1159090909091, 18.1145833333333, 16.8415170940171, 
16.9133597285068, 17.6888034188034, 17.1259793447293, 17.384655448718, 
16.7841346153846, 16.2973468660969, 16.1201495726496, 17.5849893162393, 
18.2456018518519, 18.0254807692308, 17.4643233618234, 17.1731532356532, 
17.5413283475783, 17.7156695156695, 17.5869255189255, 17.6197802197802, 
17.1997996794872, 17.6756588319088, 18.048433048433, 18.5746082621083, 
19.1991987179487, 18.6432081807082, 16.8430288461538, 17.4325367647059, 
17.314707977208, 17.5010576923077, 17.9123219373219, 17.4, 17.5033333333333, 
17.8433333333333, 18.9353846153846, 18.6049679487179, 17.1923076923077, 
17.4415196078431, 17.6505057932264, 17.2357352941176, 17.9955326484661, 
17.5959523809524, 17.5952941176471, 16.9622171945701, 18.2641666666667, 
17.3842124183007, 18.8371301247772, 18.2442091503268, 17.8693572984749, 
17.4261783559578, 17.8408721670486, 18.0430294117647, 17.5234615384615, 
18.7757894736842, 18.0545833333333, 18.3861029411765, 17.2286764705882, 
19.1830882352941, 18.9825490196078, 19.399375, 18.8928921568627, 
17.379375, 17.8381315789474, 18.9048611111111, 18.32625, 18.5, 
17.1804924242424, 17.165, 19.0856617647059, 18.6882066993464, 
18.949358974359, 18.2374264705882, 17.9036554621849, 17.7655882352941, 
18.0464795008913, 19.0757010582011, 18.0125, 17.0503365384615, 
17.4858707264957, 18.0303062678063, 19.0284455128205, 18.0894444444444, 
18.4038461538462), .Dim = c(295L, 1L), .Dimnames = list(NULL, 
    "AverageTemp"), index = structure(c(741398400, 742003200, 
746668800, 749347200, 751766400, 754185600, 757209600, 759628800, 
762048000, 765072000, 767491200, 770256000, 772243200, 775353600, 
778118400, 780710400, 783216000, 785635200, 788054400, 791424000, 
793238400, 796521600, 798940800, 801360000, 803865600, 807148800, 
809740800, 812246400, 814406400, 817603200, 819244800, 823046400, 
824860800, 827884800, 830131200, 833328000, 835315200, 838771200, 
841190400, 843609600, 846633600, 849052800, 851904000, 854496000, 
857088000, 859420800, 861321600, 864864000, 867110400, 870220800, 
872640000, 875491200, 878083200, 880502400, 883353600, 885945600, 
888364800, 890784000, 893808000, 895190400, 900115200, 904521600, 
907027200, 909532800, 911952000, 913161600, 916790400, 919555200, 
921715200, 925257600, 928108800, 930700800, 933292800, 935712000, 
938131200, 941155200, 942969600, 945734400, 949017600, 951436800, 
953856000, 956016000, 958694400, 962064000, 964483200, 966988800, 
970185600, 972604800, 974937600, 977443200, 980208000, 982800000, 
985910400, 987984000, 991267200, 993772800, 994723200, 999216000, 
1001548800, 1004054400, 1006473600, 1008892800, 1012435200, 1014854400, 
1017446400, 1019260800, 1022803200, 1025308800, 1027728000, 1030147200, 
1032566400, 1034985600, 1038614400, 1039824000, 1043452800, 1045872000, 
1048291200, 1050624000, 1053129600, 1056758400, 1059177600, 1060387200, 
1064016000, 1067558400, 1070064000, 1071273600, 1074902400, 1077580800, 
1079740800, 1083283200, 1084579200, 1087948800, 1091232000, 1093651200, 
1096070400, 1098489600, 1100908800, 1103328000, 1106352000, 1108771200, 
1111190400, 1114819200, 1116028800, 1117843200, 1122076800, 1124496000, 
1128038400, 1130544000, 1133222400, 1135209600, 1138665600, 1140825600, 
1143244800, 1145664000, 1148083200, 1151107200, 1154131200, 1156550400, 
1158969600, 1161388800, 1163808000, 1166227200, 1169251200, 1171670400, 
1175299200, 1177718400, 1180051200, 1183161600, 1185580800, 1.188e 09, 
1190419200, 1191628800, 1196294400, 1197676800, 1200614400, 1203120000, 
1206748800, 1209168000, 1210377600, 1214006400, 1216339200, 1220054400, 
1222473600, 1224892800, 1227312000, 1229731200, 1232755200, 1235174400, 
1237507200, 1240012800, 1242432000, 1248480000, 1250553600, 1253318400, 
1256947200, 1259280000, 1260576000, 1262995200, 1266710400, 1269043200, 
1272585600, 1275091200, 1275350400, 1280534400, 1282953600, 1285372800, 
1287792000, 1290211200, 1292630400, 1295568000, 1298073600, 1299283200, 
1304035200, 1306454400, 1307664000, 1311984000, 1314316800, 1316822400, 
1319241600, 1322611200, 1324080000, 1327104000, 1330473600, 1333152000, 
1335571200, 1338249600, 1340323200, 1342828800, 1346371200, 1348790400, 
1351209600, 1353628800, 1356134400, 1359158400, 1360368000, 1363910400, 
1366416000, 1369699200, 1375228800, 1377648000, 1379635200, 1382486400, 
1384992000, 1386892800, 1391126400, 1393545600, 1395360000, 1398297600, 
1401235200, 1406246400, 1408579200, 1412035200, 1414713600, 1417046400, 
1418428800, 1421712000, 1424217600, 1426723200, 1430352000, 1432944000, 
1435276800, 1438214400, 1440979200, 1443398400, 1444867200, 1447372800, 
1449619200, 1453334400, 1456704000, 1459382400, 1461715200, 1463011200, 
1466726400, 1469059200, 1472601600, 1475020800, 1477440000, 1479168000, 
1481155200, 1484179200, 1487721600, 1489968000, 1491436800, 1495065600, 
1498780800, 1501027200, 1503446400, 1508544000, 1510963200, 1513296000, 
1516233600, 1519171200, 1520812800, 1523318400, 1525219200), tzone = "UTC", tclass = "Date"), .indexCLASS = "Date", .indexTZ = "UTC", tclass = "Date", tzone = "UTC", class = c("xts", 
"zoo"))
  

Оно имеет такую структуру:

  An ‘xts’ object on 1993-06-30/2018-05-02 containing:
  Data: num [1:295, 1] 16.4 15.7 16.4 16.2 15.6 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr "AverageTemp"
  Indexed by objects of class: [Date] TZ: UTC
  xts Attributes:  
 NULL
  

Обратите внимание, что последняя дата — 2018-05-02? Теперь проблема заключается в том, что я конвертирую свой объект xts в объект zooreg. Я использовал этот код:

  StreamsTempzooreg <- zooreg(StreamsTempAveragextsMonthly, start = c(1993,6), end = c(2018,5), frequency = 12)
  

Оно имеет такую структуру:

 ‘zooreg’ series from Jun 1993 to Dec 2017
  Data: num [1:295, 1] 16.4 15.7 16.4 16.2 15.6 ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:295] "1993-06-30" "1993-07-07" "1993-08-30" "1993-09-30" ...
  ..$ : chr "AverageTemp"
  Index:  'yearmon' num [1:295] Jun 1993 Jul 1993 Aug 1993 Sep 1993 ...
  Frequency: 12 
  

Это изменяет последнюю дату на декабрь 2017. Почему это происходит? Как я могу это исправить, чтобы исходная конечная дата была май 2018?

Любая помощь была бы высоко оценена. Спасибо.

Ответ №1:

Вы хотите as.zooreg , а не zooreg . zooreg используется для создания объекта zooreg из его данных и индекса, тогда как as.zooreg используется для преобразования других объектов в класс zooreg. Первый аргумент zooreg указывает часть данных, а другие аргументы указывают часть индекса. Первым аргументом zooreg должен быть числовой вектор или матрица, но поскольку вместо этого был задан объект xts, он взял его часть данных, игнорируя индекс времени.

as.zooreg может использоваться для преобразования из класса xts в класс zooreg. В первой строке ниже выполняется преобразование с сохранением индекса класса Date, а затем в следующей строке индекс преобразуется в год / месяц с использованием yearmon класса.

 zr <- as.zooreg(StreamsTempAveragextsMonthly)
zr <- aggregate(zr, as.yearmon, c) ##
range(index(zr))
## [1] "Jun 1993" "May 2018"
  

Строка, отмеченная ##, может быть альтернативно записана:

 index(zr) <- as.yearmon(index(zr))