2011-02-11 10 views
9

나는 R을 시계열의 통계 분석에 사용하고 있습니다. 인터넷 검색을 시도했지만 확실한 답변을 찾을 수 없습니다. 더 많은 것을 아는 사람이 나를 올바른 방향으로 향하게 할 수 있습니까?R에서 시계열을 처리하는 가장 좋은 방법은 무엇입니까?

예 :

하는의 내가 두 시계열의 선형 회귀 분석을 수행 할 가정 해 봅시다. 시계열에는 일별 데이터가 포함되어 있지만 여기 저기에 간격이있어 시계열이 일정하지 않습니다. 당연히 두 시계열 데이터가있는 데이터 포인트 만 비교하려고합니다. 이것은 내가 현재 CSV 파일을 데이터 프레임으로 읽는 것입니다 :

library(zoo) 
apples <- read.csv('/Data/apples.csv', as.is=TRUE) 
oranges <- read.csv('/Data/oranges.csv', as.is=TRUE) 
apples$date <- as.Date(apples$date, "%d/%m/%Y") 
oranges$date <- as.Date(oranges$date, "%d/%m/%Y") 
zapples <- zoo(apples$close,apples$date) 
zoranges <- zoo(oranges$close,oranges$date) 
zdata <- merge(zapples, zoranges, all=FALSE) 
data <- as.data.frame(zdata) 

더 부드러운 방법이 있습니까?

또한 데이터를 슬라이스하려면 어떻게해야합니까? 예 : 특정 기간 내에 날짜가 data 인 항목을 선택 하시겠습니까?

+2

코드가 올바르지 않습니다. CSV 파일이 없습니다 ... 더미 데이터일까요? –

+0

코드에서 오타가 수정되었습니다. 그러나 나는 더미 데이터의 요점을 실제로 볼 수 없다. 임의의 임의의 데이터를 가져 와서 두 개의 열 csv 파일에 넣고 한 열 날짜에 이름을 짓고 다른 하나는 닫습니다. – c00kiemonster

+9

질문이 낮은 품질로 간주되지 않고 응답자가 코드를 쉽게 실행할 수 있고 여러 응답자가 모두 동일한 입력을 사용하여 실행하도록하는 이유가 그 이유입니다. 이것은 무엇인가이기 때문에 질문에 대한 답을 알지 못하면 스스로 할 수 있습니다. 일반적으로이 질문을 제공 할 책임이 있습니다. –

답변

11

이 줄을 따라 뭔가를 시험해보십시오. dyn 패키지는 lm, glm 및 많은 유사한 회귀 유형 함수를 동물원 시리즈를 허용하는 함수로 변환하는 데 사용할 수 있습니다. 같이 lm 대신에 dyn$lm 쓰기 :

library(dyn) # also loads zoo 
fmt <- "%d/%m/%Y" 
zapples <- read.zoo('apples.csv', header = TRUE, sep = ",", format = fmt) 
zoranges <- read.zoo('oranges.csv', header = TRUE, sep = ",", format = fmt) 
zdata <- merge(zapples, zoranges) 
dyn$lm(..whatever.., zdata) 

당신은 all = FALSElm 이후는 na.action 인수의 기본 설정에 따라 NAS 인 행을 무시합니다 필요가 없습니다.

window.zoo 기능을 사용하여 데이터를 조각 낼 수 있습니다.

원하는대로 xts 및 quantmod 패키지를 볼 수도 있습니다.

+0

나는 dyn 패키지에 대해 전혀 몰랐다. – c00kiemonster

+1

dyn 패키지의 경우 +1 –

6

두 데이터 프레임을 모두 zoo으로 변환 한 다음 병합하여 데이터 프레임으로 다시 변환 한 이유는 무엇입니까? 데이터 프레임을 원하면 read.csv() 뒤에이 행을 실행하십시오.

data <- merge(apples, oranges, by = "date") 

하위 집합은 다음과 같습니다.

subset(data, date < slicemax & date > slicemin) 
관련 문제