0
여러 주식 기호에 대한 시계열을 포함하는 xts
개체가 있습니다. I 행의 전체 세트를 포함하는 원래 xts
행렬의 모든 하위 그룹 심볼 특정 서브 그룹에 xts
객체를 분할하여 처리 된 데이터를 각각의 심볼에 대해 다음 재 조립해야한다. 각 기호는 1 ~ 4 자 사이의 필드로 하위 그룹의 행렬을 분할하는 요소 인덱스로 사용됩니다. this 우수 블로그 게시물에서 사용할 수있는 데이터 프레임과 매트릭스 하위 그룹 작업에R과 R의 성능 차이가 큰 이유는 무엇입니까?
> dim(ets)
[1] 442750 24
> head(ets)
Symbol DaySec ExchTm LclTm Open High Low Close CloseRet
2011-07-22 09:35:00 "AA" "34500" "09:34:54.697.094" "09:34:54.697.052" " 158100" " 158400" " 157900" " 158200" " 6.325111e-04"
2011-07-22 09:35:00 "AAPL" "34500" "09:34:59.681.827" "09:34:59.681.797" "3899200" "3899200" "3892200" "3894400" "-1.231022e-03"
2011-07-22 09:35:00 "ABC" "34500" "09:34:49.805.994" "09:34:49.806.008" " 400100" " 401800" " 400100" " 401600" " 3.749063e-03"
2011-07-22 09:35:00 "ALL" "34500" "09:34:59.009.001" "09:34:59.008.810" " 285500" " 285500" " 285300" " 285300" "-7.005254e-04"
2011-07-22 09:35:00 "AMAT" "34500" "09:34:59.982.447" "09:34:59.982.423" " 130200" " 130500" " 130200" " 130500" " 2.304147e-03"
2011-07-22 09:35:00 "AMZN" "34500" "09:34:48.012.576" "09:34:48.012.565" "2137400" "2139100" "2137400" "2139100" " 7.953588e-04"
... (15 more columns)
> system.time(by(ets, ets$Symbol, function(x) { return(x) }))
user system elapsed
78.725 0.932 79.735
> system.time(ddply(as.data.frame(ets), "Symbol", function(x) { return (x) }))
user system elapsed
100.590 0.416 101.105
> system.time(lapply(split.default(ets, ets$Symbol), function(x) { return(x) }))
user system elapsed
1.572 0.280 1.853
대한 자세한 내용은 다음과 같습니다
이들은 by()
, lapply()
및 ddply()
를 호출 할 때 내 매트릭스를 분할보고 시간입니다.
왜 lapply/split.default를 사용할 때 성능에 큰 차이가 있습니까? 숫자 모드에서 작업
이 myxts''의 작은 샘플을 제공하십시오. 나는'by '을 사용하지 않고 표준 xts 도구로 원하는 것을 할 수있는 방법이 있지만 재현 할 수있는 예제 없이는 알기가 어렵습니다. –
예, 'head (myxts)'가 너무 큽니다. 'X : Y' 행이'Symbol'을위한 하나 이상의 값을 포함하고있는'myxts [X : Y, 1 : 5]'는 어떨까요? 그리고'summary'가 문자에 대해 유용한 것을 어떻게 알려줍니까? –
나는 당신이하려고하는 것을 이해하지 못한다고 생각하지만,'lapply (split.default (myxts, myxts $ Symbol), str)'와 같은 것을 호출하려고한다. –