2016-10-03 7 views
0

내가 가진 일부 추적 데이터에 숨겨진 마르코프 모델을 적용하고 싶습니다. 나는이 모델이 작동하기 위해 일정한 시간 간격으로 데이터를 샘플링해야한다고 읽었다. 그러나 내 트랙이 항상 규칙적이지는 않습니다. R에서 데이터 집합을 정규화하려면 어떻게해야합니까?숨겨진 마코프 모델에 대한 GPS 데이터에 일정한 시간 간격을 만드는 방법

첫째, POSIXct에 시간을 변경 : 당신은 당신이 일정한 간격으로 위치를 보간 할 수 approx으로

tracks <- read.table(text = 
        "latitude, longitude time 
       52.111122, -10.544271 12:00 
       52.10944, -10.554933 13:00 
       52.108898, -10.558025 14:00 
       52.108871, -10.560946 15:01 
       52.113991, -10.582005 16:22 
       52.157223, -10.626506 17:00 
       52.194977, -10.652878 18:04 
       52.240215, -10.678817 19:09 
       52.26421, -10.720366 20:00 
       52.264015, -10.720642 21:05" 
       , header = TRUE, sep = ",") 

감사

답변

1

와 함께 작업 할 수

은 다음 예와 같은 일부 모의 데이터의 :

tracks$time <- as.POSIXct(sprintf("%s %s", Sys.Date(), tracks$time)) 
tracks$type = "original" 

간격 : 당신은 ggplot와 위치의 변화를 검사 할 수 있습니다

n <- nrow(tracks) 
tracks2 <- data.frame(
    latitude = approx(x = tracks$time, y = tracks$latitude, n = n)$y, 
    longitude = approx(x = tracks$time, y = tracks$longitude, n = n)$y, 
    time = as.POSIXct(approx(tracks$time, 1:nrow(tracks), n = n)$x, origin = "1970-01-01"), 
    type = "corrected" 
) 

: 귀하의 답변에 대한

ggplot(rbind(tracks, tracks2), aes(x = time, y = latitude, color = type)) + 
    geom_line() + 
    geom_point() + 
    scale_x_datetime(breaks = tracks2$time, minor_breaks = NULL, labels = format(tracks2$time, format = "%H:%M")) + 
    theme_minimal() 

enter image description here

+0

감사합니다. 이것에 대한 모범 사례가 있습니까? 예를 들어 원본 데이터가 샘플링되는 것보다 더 조잡한 시간 해상도로 보간해야합니까? –

+1

미안하지만, 나는 몰라. 그러나 다른 해상도로 시도 할 수 있습니다. 'n> nrow (트랙)'을 허용하도록 샘플을 업데이트했습니다. 'n'의 다른 값을 사용해보십시오. – bergant