2016-09-12 2 views
0

다른 데이터 프레임의 두 열을 정렬하기위한 솔루션을 찾는 데 어려움을 겪고 있습니다.이 두 데이터 프레임을 병합하여 두 데이터 프레임에 대해 동일한 관찰 시간을 얻으려고합니다. 저는 여기에서 제공되는 많은 솔루션을 시도해 보았습니다. 특히 동물원과 xts를 병합했는데 대부분이 제 경우에는 사용할 수 없습니다. 더미 코드.다른 데이터 프레임의 다른 datetime 정렬

df2<-structure(list(datetime = structure(1:10, .Label = c("2004-01-03 03:00:00", 
"2004-01-03 12:00:00", "2004-01-03 15:00:00", "2004-01-03 21:00:00", 
"2004-01-04 03:00:00", "2004-01-04 12:00:00", "2004-01-04 15:00:00", 
"2004-01-04 21:00:00", "2004-01-05 03:00:00", "2004-01-05 12:00:00" 
), class = "factor"), value = c(-1.7, -2.2, -2.5, -3.9, -5.5, 
-5.6, -6, -6.7, -7.8, -7.6)), .Names = c("datetime", "value"), class = "data.frame", row.names = c(NA, 
-10L)) 

DF2

df1<- structure(list(datetime = structure(c(1073098800, 1073131200, 
    1073142000, 1073163600, 1073703600, 1073736000, 1073746800, 1073768400, 
    1073790000, 1073822400), class = c("POSIXct", "POSIXt"), tzone = "UTC"), 
     value = c(NA, NA, NA, -12.7, -12.9, -7.9, -6.2, -14, -11.7, 
     NA)), .Names = c("datetime", "value"), row.names = c(NA, 
    10L), class = "data.frame") 

DF1 그리고 나는 이런 식으로 뭔가를 얻으려면 : 사전에

datetime value datetime value 
2004-01-03 03:00:00 NA  2004-01-03 03:00:00 -1.7 
2004-01-03 12:00:00 NA  2004-01-03 12:00:00 -2.2 
2004-01-03 15:00:00 NA  2004-01-03 15:00:00 -2.5 
2004-01-03 21:00:00 -12.7 2004-01-03 21:00:00 -3.9 
2004-01-10 03:00:00 -12.9 2004-01-04 03:00:00 -5.5 
2004-01-10 12:00:00 -7.9 2004-01-04 12:00:00 -5.6 
2004-01-10 15:00:00 -6.2 2004-01-04 15:00:00 -6 
2004-01-10 21:00:00 -14  2004-01-04 21:00:00 -6.7 
2004-01-11 03:00:00 -11.7 2004-01-05 03:00:00 -7.8 
2004-01-11 12:00:00 NA  2004-01-05 12:00:00 -7.6 

감사합니다.

편집 :

내가 원래 데이터 프레임이 기록의 다른 번호를 가지고 얘기를 깜빡 했네요. 이것은 이러한 데이터를 병합하는 주요 문제입니다.

나중에 편집. plyr의 참여가 트릭을 수행한다는 것을 알았습니다.

답변

0

동물원으로 변환하고 동시에 POSIXct인지 확인한 다음 병합하십시오. 선택적으로 data.frame으로 다시 변환하십시오.

library(zoo) 

z1 <- read.zoo(df1) 
z2 <- read.zoo(df2, tz = "") 

z <- merge(z1, z2) 

fortify.zoo(z) 
+0

덕분에, 그것은 매력처럼 작동합니다. – julics

관련 문제