Преобразование из xts в zooreg временной ряд удаляет значения даты - PullRequest
0 голосов
/ 14 марта 2019

Надеюсь, у тебя хороший день!

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

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 Ответ

2 голосов
/ 14 марта 2019

Вы хотите 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))
...