2013-02-22 3 views
-2

두 개의 시계열을 병합해야하며 merge.zoo를 사용하는 것이 가장 좋습니다. 두 데이터 프레임 각각을 동물원으로 변환하려고하면 다음과 같은 오류가 발생합니다.R : 데이터 프레임을 동물원으로 변환 : as.matrix.data.frame (x)의 오류

R은 19의 길이를 어디에서 찾았습니까? 내가 가진 : csv로 시간 필드가 올바른 형식이 아니기 때문에

> class(FNCC_short) 
[1] "data.frame" 
> length(FNCC_short) 
[1] 2 
> length(FNCC_short[,1]) 
[1] 10 
> length(FNCC_short[,2]) 
[1] 10 

내가 데이터를 얻을 수 read.zoo(...)를 사용할 수없는 - 나는 다음 시간 형식을 수정, 먼저 CSV 파일을 읽을 수 있었다.

> FNCC_short 
      time_FNCC FNCC 
1 2013-02-07 09:00:00 2.556 
2 2013-02-07 09:01:00 2.556 
3 2013-02-07 09:02:00 2.552 
4 2013-02-07 09:03:00 2.552 
5 2013-02-07 09:04:00 2.552 
6 2013-02-07 09:05:00 2.552 
7 2013-02-07 09:06:00 2.552 
8 2013-02-07 09:07:00 2.539 
9 2013-02-07 09:08:00 2.539 
10 2013-02-07 09:09:00 2.539 

> class(FNCC_short$time_FNCC) 
[1] "POSIXlt" "POSIXt" 

따라서, 첫 번째 열 그것을 POSIX 시간 : 여기

는 FNCC_short이다. 이 간단한 변환이 왜 작동하지 않습니까?

+1

당신은 둘 다 할 심지어 요청 후 .. – agstudy

+0

-1 '제공 dput' 출력 또는 문서를 읽을 수있는 합리적인 노력을하지 않았다 올바른 형식을 지정 read.zoo''에서'format' argumeent을 사용할 수 있습니다 . –

답변

1

첫 번째 및 두 번째 열을 동물원 인덱스로 변환하려면 format 옵션을 사용할 수 있습니다.

Lines <- 'time_FNCC time FNCC ## I had to add the 'time' column name here 
1 2013-02-07 09:00:00 2.556 
2 2013-02-07 09:01:00 2.556 
3 2013-02-07 09:02:00 2.552 
4 2013-02-07 09:03:00 2.552 
5 2013-02-07 09:04:00 2.552 
6 2013-02-07 09:05:00 2.552 
7 2013-02-07 09:06:00 2.552 
8 2013-02-07 09:07:00 2.539 
9 2013-02-07 09:08:00 2.539 
10 2013-02-07 09:09:00 2.539' 

dat <- read.zoo(text = Lines, index = 1:2, tz = "") 

dat 
2013-02-07 09:00:00 2013-02-07 09:01:00 2013-02-07 09:02:00 2013-02-07 09:03:00 
       2.556    2.556    2.552    2.552 
2013-02-07 09:04:00 2013-02-07 09:05:00 2013-02-07 09:06:00 2013-02-07 09:07:00 
       2.552    2.552    2.552    2.539 
2013-02-07 09:08:00 2013-02-07 09:09:00 
       2.539    2.539 
+0

유감스럽게도이 방법으로 data.frame의 문제점을 해결할 수 없습니다. 실제 데이터 세트는 훨씬 길기 때문에 텍스트로 변환하는 것은 현실적이지 못합니다. 나는 zoo()에서 'format'옵션을 보지 못했고, read.zoo()에서만 data.frame을 허용하지 않습니다. – user2069819

+1

@ user2069819 내 대답은 내 진술서에 대한 것입니다. * csv 시간 필드가 올바른 형식이 아니기 때문에 read.zoo (...)를 사용하여 데이터를 가져올 수 없습니다. 당신은 할 수 없습니다. 이제 내 생각에, 당신은 이미 당신의 데이터를 읽었고, 당신은 read.zoo를 사용하여 그것을 재 레이싱하고 싶습니까? 동물원으로 변환 할 수없는 이유를보기 위해'dput (head (data_frame)) '할 수 있습니까? – agstudy

+0

user2069819, 대답은'text ='를 사용하여 재현성있게 만들었습니다. 'text = ...'를 'myfile.txt'와 바꾸는 동일한 명령을 사용할 수 있습니다. 파일에서 파일을 읽으려는 경우에 사용할 수 있습니다. 'read.zoo'와'? read.zoo'에 예제를 사용하는 것에 대한 전체 설명이 있습니다. 이 자료들을 지금 검토 할 것을 제안하십시오. –

관련 문제