2012-01-03 4 views
4

구성 요소가 xts 객체 (co 및 oc) 인 목록이 2 개 있습니다. oc/co의 결과를 가진 다른 목록 객체를 생성하려고합니다.R은 각각 같은 크기의 xts 객체를 포함하는 2 개의 목록 객체를 나눕니다.

> length(co) 
[1] 1064 
> length(oc) 
[1] 1064 

> tail(co[[1]]) 
       [,1] 
2011-12-22 0.3018297 
2011-12-23 0.2987450 
2011-12-27 0.2699710 
2011-12-28 0.2706428 
2011-12-29 0.2098897 
2011-12-30 0.2089051 


> tail(oc[[1]]) 
       [,1] 
2011-12-22 0.6426411 
2011-12-23 0.6462834 
2011-12-27 0.6466680 
2011-12-28 0.6741420 
2011-12-29 0.6781371 
2011-12-30 0.6650130 


> co/oc 
Error in co/oc : non-numeric argument to binary operator 

다음과 같이 나는 작업이 성공 목록의 인덱스를 지정하는 경우 :

> tail(co[[1]]/oc[[1]]) 
       [,1] 
2011-12-22 0.4696707 
2011-12-23 0.4622507 
2011-12-27 0.4174800 
2011-12-28 0.4014627 
2011-12-29 0.3095093 
2011-12-30 0.3141369 

내가이 작업을 수행 할 수에서 (두 목록의 각 구성 요소를 통해 1064 개 구성 요소를 반복하는 루프를 작성하지 않고 합계).

도움을 주시면 감사하겠습니다. 고맙습니다. 이 같은

답변

6

뭔가 작업 할 수있는 모든 대부분 동일하다는 것을이 일을 셀 수없이 많은 방법이 아마이 있습니다

mapply("/",co,oc,SIMPLIFY = FALSE) 

있지만.

data(sample_matrix) 
sample.xts <- as.xts(sample_matrix, descr='my new xts object') 
v1 <- list(a = sample.xts[,1],b = sample.xts[,2]) 
v2 <- list(a = sample.xts[,3],b = sample.xts[,4]) 
mapply("/",v1,v2,SIMPLIFY = FALSE) 
+0

이 완벽 :

다음은 XTS에서 패키지를 일부 샘플 데이터를 사용하여 최소한의 예입니다. 고맙습니다. – codingknob