홈>
매월 측정되는 여러 위치가있는 대규모 데이터 집합을 사용하고 있지만 각 사이트마다 측정 횟수와 NA가 다르기 때문에 시계열이 끊어집니다. 이 문제를 해결하기 위해 보간 기술을 사용하여 간격을 메우기 위해 각 사이트에서 반복되는 for 루프를 만들었습니다. 이로부터 보간 출력을 얻었으며 이상적으로 원래 데이터 세트에 다시 추가하고 싶습니다. 예를 들면 다음과 같습니다.
library(imputeTS)
Sites = c(rep("A", 5), rep("B", 4), rep("C", 10))
Meas = c(25,20,NA,21,NA,23,21,22,26,27,15,20,NA,25,NA,28,28,27,NA)
df= data.frame(Sites, Meas)
for(i in Sites) {
d = subset(df, Sites = i)
d$fit = na.interpolation(d$Meas)
}
필요한 것은 d $fit을 가져 와서 새로운 열 df $fit에 다시 일치시켜 측정 횟수와 각 사이트가 올바르게 일치하는 것입니다. 내 접근 방식에 대한 제안이나 완전한 점검이 있습니까? 미리 감사드립니다!
- 답변 # 1
실제로 루프가 필요한 것은 아닙니다. 이 특정 작업을
이 경우이 함수는ave()
로 수행 할 수 있습니다 기능na.interpolation
를 적용합니다. 각Meas
에 기능 다른Sites
값 각각에 대한 값 그런 다음 모든 것을 올바른 순서로 되돌립니다.더 복잡한 무언가를 위해 사용할 수있는 또 다른 전략은
split/unsplit
입니다. . 와 같은 것