에 의해 참조 된 것보다 더 큰 요인 목록을 사용하여 xts
개체 x
을 신속하고 효율적으로 분할하고 병합하려면 어떻게해야합니까?모든 요인 (누락 된 요인 포함)을 사용하여 분할 된 xts 목록을 병합
이 간단한 예제는 전체 요소 목록 (0으로 채워짐)을 생성하지 않습니다.
a = cbind(value = runif(2), group = c(1,3))
x = xts(a, Sys.Date() + 1:nrow(a))
do.call(merge, c(split(x$value, x$group), fill = 0))
value.1 value.3
2016-12-08 0.3403723 0.0000000
2016-12-09 0.0000000 0.5247683
내 대안은, 모든 그룹과 연관된 더미 값 추가 분할 및 병합 후
가all.groups = 1:5
x.all.groups = xts(cbind(value = 0, f = all.groups), Sys.Date()-1:length(all.groups))
x = rbind(x,x.all.groups)
as.xts(do.call(merge, c(split(x$value, x$group), fill = 0)))[!(index(x) %in% index(x.all.groups)),]
value.1 value.2 value.3 value.4 value.5
2016-12-08 0.3455855 0 0.00000 0 0
2016-12-09 0.0000000 0 0.16545 0 0
다른 해결 조작 split
간에 누락 된 그룹들의리스트에 추가하는 것 같이 더미 값을 제거하는 것 및 merge
.
그러나 이러한 솔루션은 불필요하게 부피가 큰 것처럼 보입니다. 어떤 제안? split
(또는 다른 기능) 및 해당 매개 변수를 활용하는 더 좋은 방법이 있습니까?