2014-12-15 1 views
0

는 재현 예입니다날짜별로 xts 데이터를 xts 개체 목록에서 분리하고 목록을 만드는 방법은 무엇입니까? 여기에 내 질문에 명확히하기 위해

ibov <- structure(c(0.029210645, -0.000172395, 0.035483633, -0.011969176,-0.007692018, 0.010634809, 0.027410321, -0.002632171, 0.000878164,0.004689955), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", .CLASS = "double", class = c("xts","zoo"), index = structure(c(1041465600, 1041552000, 1041811200,1041897600, 1041984000, 1042070400, 1042156800, 1388016000, 1388102400,1388361600), tzone = "UTC", tclass = "Date"), .Dim = c(10L, 1L), .Dimnames = list(NULL, "IBOV")) 
resa <- structure(c(0.010810871, 0, 0.021277441, 0, -0.021277438, 0.010695311,0.010582131, 0.038614857, -0.022989515, 0.022989514, 0.009950331,-0.006253523, -0.011131809, -0.032230311, 0.019084526, 0.027960905,-0.027960898, 0.013885075, 0.006913914, 0.001716716), class = c("xts","zoo"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", index = structure(c(1041465600,1041552000, 1041811200, 1041897600, 1041984000, 1042070400, 1042156800,1051488000, 1051574400, 1051660800), tzone = "UTC", tclass = "Date"), .Dim = c(10L,2L), .Dimnames = list(NULL, c("ACES4", "AMBV4"))) 
resb <- structure(c(0.033371931, -0.066402455, 0.014815083, 0.018215437,0.01647012, -0.009275838, -0.013713674, 0, 0.020007567, 0.017603702,0.02777956, -0.001054296, -0.019169914, -0.005390845, 0.008611465,0.00641028, -0.004268949, -0.025679012, -0.08124767, 0.027822509), class = c("xts", "zoo"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", index = structure(c(1378080000,1378166400, 1378252800, 1378339200, 1378425600, 1378684800, 1378771200,1388016000, 1388102400, 1388361600), tzone = "UTC", tclass = "Date"), .Dim = c(10L,2L), .Dimnames = list(NULL, c("AEDU3", "ALLL3"))) 
lst <- list(resa, resb) 
나도 같은 lst 날짜에 따라 분류 lst 같은 목록에 ibov 데이터를 분리 할 수 ​​있습니다 어떻게

? 다음과 같이 반환해야합니다.

bova <- structure(c(0.029210645, -0.000172395, 0.035483633, -0.011969176,-0.007692018, 0.010634809, 0.027410321), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", .CLASS = "double", class = c("xts","zoo"), index = structure(c(1041465600, 1041552000, 1041811200,1041897600, 1041984000, 1042070400, 1042156800), tzone = "UTC", tclass = "Date"), .Dim = c(7L, 1L), .Dimnames = list(NULL, "IBOV")) 
bovb <- structure(c(-0.002632171, 0.000878164,0.004689955), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", .CLASS = "double", class = c("xts","zoo"), index = structure(c(1388016000, 1388102400,1388361600), tzone = "UTC", tclass = "Date"), .Dim = c(3L, 1L), .Dimnames = list(NULL, "IBOV")) 
newlst <- list(bova, bovb) 

> newlst 
[[1]] 
        IBOV 
2003-01-02 0.029210645 
2003-01-03 -0.000172395 
2003-01-06 0.035483633 
2003-01-07 -0.011969176 
2003-01-08 -0.007692018 
2003-01-09 0.010634809 
2003-01-10 0.027410321 

[[2]] 
        IBOV 
2013-12-26 -0.002632171 
2013-12-27 0.000878164 
2013-12-30 0.004689955 

도움이 될 것입니다. 감사! 나중에 참조하려면

+2

아마도 '? split.xts'. –

+0

@JoshuaUlrich 감사합니다. 'lst'와'ibov'의 실제 데이터는 같은 기간을 가지므로 도움이되었습니다. –

+0

제 말은 분기 별 데이터 목록이 필요할 때 도움이되었습니다. –

답변

0

나는 데이터의 분기 별 list을 만들 JoshuaUlrich에 의해 제안 split을 사용했다.

ibov <- split(ibov, f = 'months', k = 3) 

는이 같은 결과를 생산, split 대신 split.xts로 괜찮 았는데.

+0

"split.xts"메서드를 호출했기 때문에 "split"으로 잘 작동했습니다 ... –

+0

. Tks –

1
> dt1 <- index(ibov)[index(ibov) %in% index(lst[[1]])] 
> dt2 <- index(ibov)[index(ibov) %in% index(lst[[2]])] 

> newlst<- list() 
> newlst[[1]] <- ibov[dt1,] 
> newlst[[2]] <- ibov[dt2,] 
> newlst 
[[1]] 
        IBOV 
2003-01-02 0.029210645 
2003-01-03 -0.000172395 
2003-01-06 0.035483633 
2003-01-07 -0.011969176 
2003-01-08 -0.007692018 
2003-01-09 0.010634809 
2003-01-10 0.027410321 

[[2]] 
        IBOV 
2013-12-26 -0.002632171 
2013-12-27 0.000878164 
2013-12-30 0.004689955 
+0

답장을 보내 주시면 감사하겠습니다. 예를 들어 위와 같은 데이터의 경우 효과가 있지만 33 개의 요소 목록이 있으므로 힘들 수 있습니다! –

+0

문제의 성격이 명확하지 않습니다. "33 가지 요소"... 무엇의 ... 무엇에서? –

+0

실제'lst' 데이터에는 33 개의 요소가 있으므로 33 개의 요소로 ibov 데이터를 분할해야합니다. 나는 나의 가난한 영어가 도움이되지 않는 브라질 사람이다! 그 죄송합니다. –