2013-05-20 2 views
0

동물원 개체를 다른 인덱스 클래스와 병합하려고합니다. 인덱스 클래스가 다르므로 첫 번째 동물원 객체를 인덱스 클래스 날짜로 집계하려고했습니다.집합 개체 개체 인덱스 클래스 날짜

> dput(ldr_fund) 
structure(c(0, 0.00711526523549466, -0.00967898190752514, 0.00865649238073551, 
0.00140576371796719, -0.00277816737879455, 0.00299548328067445, 
-0.000337635111039347, 0.0032196072133992, -0.000270802406319604, 
-0.00069783616594421, 0.000224839739512817, 0.00571506572744696, 
-0.00746006714414271, -0.00365790751321349, 0.0107331741176058, 
-0.0147292166162796, 0.00876201646252461, 0.0119990814059783, 
-0.000439798929239288, 0.00216263784779791, 0.00331579614744903, 
0.00864493546867529, 0.00389976681281468, 0.00229305793467383, 
0.00367984209717065, 0.00320868237916372, 5.98484992213599e-05, 
-0.000289401793452271, 0.00523584702691515, -0.0018435112082944, 
-0.00343597242446236, 0.000591752944682611, 0.00399993442909263, 
-0.00643493976659926, 0.0068658180559904, -0.00387529228431127, 
0.00757751368715986, -0.00231678532792579, 0.00271447638126432, 
-0.00101444593213351, 0.00418953640464537, -0.00760980263702216, 
0.0046306972371184, -0.00293437923621731, 0.00484572903010161, 
0.00442672454119553, 0.00974585027789665, 0.00160686478219851, 
-0.000140334149801191, -0.0162229323139407, 0.0110307772371225, 
-0.00863443855846491, -0.00294479357881627, 0.00620598434056596, 
0.00355138801309529, 0.00886464493295591, -0.00346148036934224, 
0.00114459270716871, 0.000498442997617587, 0.00668682978367841, 
-0.000443061012932233), index = structure(c(1359586800, 1359673200, 
1359932400, 1360018800, 1360105200, 1360191600, 1360278000, 1360537200, 
1360623600, 1360710000, 1360796400, 1360882800, 1361228400, 1361314800, 
1361401200, 1361487600, 1361746800, 1361833200, 1361919600, 1362006000, 
1362092400, 1362351600, 1362438000, 1362524400, 1362610800, 1362697200, 
1362956400, 1363042800, 1363129200, 1363215600, 1363302000, 1363561200, 
1363647600, 1363734000, 1363820400, 1363906800, 1364166000, 1364252400, 
1364338800, 1364425200, 1364767200, 1364853600, 1364940000, 1365026400, 
1365112800, 1365372000, 1365458400, 1365544800, 1365631200, 1365717600, 
1365976800, 1366063200, 1366149600, 1366236000, 1366322400, 1366581600, 
1366668000, 1366754400, 1366840800, 1366927200, 1367186400, 1367272800 
), class = c("POSIXct", "POSIXt"), tzone = ""), class = "zoo", .Names = c("2013-01-31", 
"2013-02-01", "2013-02-04", "2013-02-05", "2013-02-06", "2013-02-07", 
"2013-02-08", "2013-02-11", "2013-02-12", "2013-02-13", "2013-02-14", 
"2013-02-15", "2013-02-19", "2013-02-20", "2013-02-21", "2013-02-22", 
"2013-02-25", "2013-02-26", "2013-02-27", "2013-02-28", "2013-03-01", 
"2013-03-04", "2013-03-05", "2013-03-06", "2013-03-07", "2013-03-08", 
"2013-03-11", "2013-03-12", "2013-03-13", "2013-03-14", "2013-03-15", 
"2013-03-18", "2013-03-19", "2013-03-20", "2013-03-21", "2013-03-22", 
"2013-03-25", "2013-03-26", "2013-03-27", "2013-03-28", "2013-04-01", 
"2013-04-02", "2013-04-03", "2013-04-04", "2013-04-05", "2013-04-08", 
"2013-04-09", "2013-04-10", "2013-04-11", "2013-04-12", "2013-04-15", 
"2013-04-16", "2013-04-17", "2013-04-18", "2013-04-19", "2013-04-22", 
"2013-04-23", "2013-04-24", "2013-04-25", "2013-04-26", "2013-04-29", 
"2013-04-30")) 
> dput(ldr_dj_bm_2007) 
structure(c(0, 0.0107075310151732, -0.00930165219240386, 0.00712294527047419, 
0.000516344606410257, -0.00304111464474488, 0.00350216665922076, 
-0.00155412968031143, 0.00339122166635697, -0.00255628297725785, 
-0.00068106297099213, 0.000598816336173869, 0.00384832345665487, 
-0.00773377154828836, -0.00337455225556305, 0.00860442040322518, 
-0.0155772107827197, 0.00837736032144853, 0.0125282688135684, 
-0.00148454374353513, 0.00249927734944144, 0.00270470809321743, 
0.00887553000438146, 0.00297513250094283, 0.00232308590582342, 
0.00470506212171529, 0.00348214006095837, 0.000191713081544975, 
0.000361178941796325, 0.00578457743516481, -0.00172304345934293, 
-0.00428431476528957, 0.000260136683921885, 0.00386018627232154, 
-0.00623783267864297, 0.00625850539644546, -0.0044392675334084, 
0.00771531092615163, -0.00230284216255505, 0.00359942253672152, 
-0.000390375901270446, 0.00609958634538543, -0.00764474652535263, 
0.00382488601013797, -0.00280137962175964, 0.00330583571825471, 
0.00409602941511089, 0.00873810083621329, 0.00424035383294985, 
-5.38173305209e-06, -0.0180467600763894, 0.0107359054985476, 
-0.00940863174878537, -0.00558725244663094, 0.00071309095618588, 
0.00135052166042549, 0.0104000612330069, -0.00293648002390334, 
0.00166796625127397, 0.0007989569787199, 0.00719239978027097, 
0.00141948972789052), index = structure(c(15736, 15737, 15740, 
15741, 15742, 15743, 15744, 15747, 15748, 15749, 15750, 15751, 
15755, 15756, 15757, 15758, 15761, 15762, 15763, 15764, 15765, 
15768, 15769, 15770, 15771, 15772, 15775, 15776, 15777, 15778, 
15779, 15782, 15783, 15784, 15785, 15786, 15789, 15790, 15791, 
15792, 15796, 15797, 15798, 15799, 15800, 15803, 15804, 15805, 
15806, 15807, 15810, 15811, 15812, 15813, 15814, 15817, 15818, 
15819, 15820, 15821, 15824, 15825), class = "Date"), class = "zoo", .Names = c("2013-01-31", 
"2013-02-01", "2013-02-04", "2013-02-05", "2013-02-06", "2013-02-07", 
"2013-02-08", "2013-02-11", "2013-02-12", "2013-02-13", "2013-02-14", 
"2013-02-15", "2013-02-19", "2013-02-20", "2013-02-21", "2013-02-22", 
"2013-02-25", "2013-02-26", "2013-02-27", "2013-02-28", "2013-03-01", 
"2013-03-04", "2013-03-05", "2013-03-06", "2013-03-07", "2013-03-08", 
"2013-03-11", "2013-03-12", "2013-03-13", "2013-03-14", "2013-03-15", 
"2013-03-18", "2013-03-19", "2013-03-20", "2013-03-21", "2013-03-22", 
"2013-03-25", "2013-03-26", "2013-03-27", "2013-03-28", "2013-04-01", 
"2013-04-02", "2013-04-03", "2013-04-04", "2013-04-05", "2013-04-08", 
"2013-04-09", "2013-04-10", "2013-04-11", "2013-04-12", "2013-04-15", 
"2013-04-16", "2013-04-17", "2013-04-18", "2013-04-19", "2013-04-22", 
"2013-04-23", "2013-04-24", "2013-04-25", "2013-04-26", "2013-04-29", 
"2013-04-30")) 

집계 전에 첫 번째 동물원 객체는 다음과 같습니다

> str(ldr_fund) 
‘zoo’ series from 2013-01-31 to 2013-04-30 
    Data: Named num [1:62] 0 0.01109 -0.00989 0.0092 0.00133 ... 
- attr(*, "names")= chr [1:62] "2013-01-31" "2013-02-01" "2013-02-04" "2013-02-05" ... 
    Index: POSIXct[1:62], format: "2013-01-31" "2013-02-01" "2013-02-04" "2013-02-05" "2013-02-06" "2013-02-07" ... 

이제 통합 제공 :

ldr_fund <- aggregate(ldr_fund, as.Date) 

을 그리고는 다음과 같습니다

> str(ldr_fund) 
‘zoo’ series from 2013-01-30 to 2013-04-29 
    Data: num [1:62] 0 0.01109 -0.00989 0.0092 0.00133 ... 
    Index: Date[1:62], format: "2013-01-30" "2013-01-31" "2013-02-03" "2013-02-04" "2013-02-05" "2013-02-06" ... 

문제는 th 이제 2013-01-31 대신 2013-01-30에서 시계열이 시작됩니다. 병합 후 날짜가 다르기 때문에 나는 많은 NA를 얻었습니다 ... 잘못한 게 뭐야? 그것은 내가 병합으로 조사하고 싶은 2007 년의 나의 실제 데이터에서 하나 또는 미사용 값을 가질 수 있습니다.

+1

질문 코드를 재현 가능하게 만드십시오. 그것은'dput '을 사용하고 문제가있는 코드를 보여주는 것을 포함합니다. 질문하는 방법은 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example을 참조하십시오. –

답변

2

우리가 얻는 날짜는 POSIXct에서 날짜로 변환하는 동안 어떤 표준 시간대가 사용되는지에 따라 달라 지므로 한 표준 시간대의 날짜가 다른 표준 시간대의 날짜와 다를 수 있습니다.

내 시간대입니다 4시간 전에 GMT 너무 :

> tt <- as.POSIXct("2013-05-20 22:00:00") 
> as.Date(tt) # it gives date in GMT by default & 10pm here is 2am the next day in GMT 
[1] "2013-05-21" 
> as.Date(tt, tz = "") # do conversion relative to local time zone 
[1] "2013-05-20" 

것은 R News 4/1에서 설명하고있는 바와 같이 당신은 시간 영역 (즉, 대하) 당신이하지 않으면 정말 필요가없는 클래스를 사용하여 이러한 문제를 방지 할 수 있습니다 당신은 이미 당신이 사용할 수있는 경우 POSIXct 형태의 데이터가있는 경우 시간대는하지만 너무 늦을 수 있습니다

aggregate(ldr_fund, function(tt) as.Date(tt, tz = "...whatever...")) 

가 종종 tz = "" (로컬 시간대를 의미) 의도 한 결과를 줄 것이다 경우 "의 기본 GMT "(또는"UTC ")는 그렇지 않습니다. 그러나 그것이 의도 한 결과를 낼 것인지의 여부는 가지고있는 것, 원하는 것과 시간대에 따라 달라집니다.

각 POSIXct 시간에 충분한 초를 더하거나 뺄 수 있습니다. 당신이 (X는 양 또는 음의 초 일부 수 있습니다) 질문에 사용되는 동일한 집계 문 :이 동물원과 아무 상관이 있지만 POSIXct 작동하는 방법이다

time(ldr_fund) <- time(ldr_fund) + X 

참고. 동물원은 POSIXct를 사용할 것을 요구하지 않으며 자체 처리 시간을하지 않지만 사용하기로 결정한 날짜/시간 클래스에 의존합니다.