저는 100 년 (1200 데이터 포인트)의 월 데이터와 1 년 단위의 월간 데이터 프레임을 가지고 있습니다. 월간 시계열로 변환하고 여러 가지 방법을 시도했지만 어느 것도 올바른 "임시적"구조를 만들지 않았습니다.데이터 프레임을 월간 시계열로 변환합니다.
문제는 데이터 프레임을 12 가지 변수 (월)의 100 회의 관측치 (년)로 간주하는 R에 있습니다. 여기 내 최신 시도에 대한 재현 코드입니다은 "dummy.df.ts"에서
set.seed(12)
dummy.df <- as.data.frame(matrix(round(rnorm(1200),digits=2),nrow=100,ncol=12))
rownames(dummy.df) <- seq(from=1901, to=2000)
colnames(dummy.df) <- c("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec")
dummy.df.ts <- ts(as.vector(as.matrix(dummy.df)), start=c(1901,1), end=c(2000,12), frequency=12)
개체, 행과 열이 열에서 순차적으로 관찰하는 대신 전환되고, 등 모든 januarys의 februarys 함께 적층 하나씩. 올바른 시간 구조를 어떻게 얻을 수 있습니까?
fr.monthly.temp.sample.ts <- ts(as.vector(as.matrix(fr.monthly.temp.sample)), start=c(1901,1), end=c(1905,12), frequency=12)
이것은이다 : - :
내 데이터의 예로 1905
fr.monthly.temp.sample
JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
1901 2.7 0.4 4.7 10.0 13.0 16.9 19.2 18.3 15.7 10.6 4.9 3.5
1902 4.1 3.2 7.5 10.3 10.0 15.1 18.2 17.4 15.0 10.2 6.3 3.5
1903 3.8 5.9 7.6 7.1 12.9 14.9 17.6 17.3 15.5 12.1 6.9 2.7
1904 3.0 4.6 5.5 10.3 13.6 16.3 20.2 18.5 13.9 11.2 5.4 4.8
1905 1.7 4.0 7.4 9.3 11.9 16.5 20.0 17.6 14.7 8.4 5.5 3.8
그리고이 (TS) 호출을 사용하여 이러한 1901 년 월별 온도 값은 출력 나는 시계열 객체를 얻는다 :
fr.monthly.temp.sample.ts
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1901 2.7 4.1 3.8 3.0 1.7 0.4 3.2 5.9 4.6 4.0 4.7 7.5
1902 7.6 5.5 7.4 10.0 10.3 7.1 10.3 9.3 13.0 10.0 12.9 13.6
1903 11.9 16.9 15.1 14.9 16.3 16.5 19.2 18.2 17.6 20.2 20.0 18.3
1904 17.4 17.3 18.5 17.6 15.7 15.0 15.5 13.9 14.7 10.6 10.2 12.1
1905 11.2 8.4 4.9 6.3 6.9 5.4 5.5 3.5 3.5 2.7 4.8 3.8
변경된 시간적 구조 --Note 617,451,515,
(열에서 값이 로우에있다 ..) -
덕분.
답변을 수정했습니다. 필자는'plot '에 의해 표시되는 데이터에서 col과 행 사이의 "전환"을 실제로 경험하지 않습니다.아마도 데이터 샘플을 사용하여 불과 몇 년 만에 더 나은 답변을 얻을 수있을뿐만 아니라 얻은 차트를 게시 할 수 있습니다. – Michele
오리지널 데이터와 플롯을 추가하여 잘못된 값의 순서를 표시했습니다. 귀하의 EDIT 1 솔루션은 나에게 내가 원하는 바가 아닌 다변량 시계열을 제공한다. 나는 그것을 추가 처리를위한 단 변량 시리즈로 유지하고 싶다. 편집 2의 경우와 마찬가지로 같은 이유로 as.vector()를 시도했지만 그 주문 문제를 일으키는 작업입니다. 아마도 @Alexander가 게시 한 해결책 # 1이 효과가있을 것입니다. 나는 여전히 그것을 시도해야합니다. – avg
제 편집 1은 해결책이 아니 었습니다 ... 그것은 ts() 작동 방식을 인식하는 것입니다. 제 편집 2는 벡터에서 이미 데이터로 시작되었습니다 ... 전조가 필요하다는 것을 깨닫지 못했습니다 ... round (seq (5,10, length.out = 24), 1)'는 벡터입니다 . 대답에 대해 – Michele