Tôi có cơ sở dữ liệu với dữ liệu thời gian. Tôi muốn nội suy các dữ liệu để mach e bước thời gian cụ thể.Nội suy của dữ liệu chuỗi thời gian với thời gian đầu ra cụ thể
Id Time humid humtemp prtemp press t
1 2012-01-21 18:41:50 47.7 14.12 13.870 1005.70 -0.05277778
1 2012-01-21 18:46:43 44.5 15.37 15.100 1005.20 0.02861111
1 2012-01-21 18:51:35 43.2 15.88 15.576 1005.10 0.10972222
1 2012-01-21 18:56:28 42.5 16.17 15.833 1004.90 0.19111111
1 2012-01-21 19:01:21 42.2 16.31 15.986 1004.80 0.27250000
1 2012-01-21 19:06:14 41.8 16.47 16.118 1004.60 0.35388889
1 2012-01-21 19:11:07 41.6 16.51 16.177 1004.60 0.43527778
Tôi muốn lấy dữ liệu với bước thời gian dưới đây làm nội suy.
Id Time humid humtemp prtemp press t
1 2012-01-21 18:45:00 .... ... ..... .... ....
1 2012-01-21 18:50:00 ....
1 2012-01-21 18:55:00 ....
1 2012-01-21 19:00:00 ....
1 2012-01-21 19:05:00 ....
1 2012-01-21 19:10:00 ....
Tôi đã thử với phương pháp khác nhưng tôi không tìm thấy giải pháp. Ví dụ tôi tạo đối tượng sở thú.
z <- zoo(MTS01m,order.by=MTS01m$Time)
tstart2<-asP("2012-01-21 18:45:00")
Ts<-1*60
y <- merge(z, zoo(order.by=seq(tstart2, end(z), by=Ts)))
xa <- na.approx(y)
xs <- na.spline(y)
nhưng lỗi xảy ra:
Errore in approx(x[!na], y[!na], xout, ...) :
need at least two non-NA values to interpolate
Inoltre: Warning message:
In xy.coords(x, y) : si è prodotto un NA per coercizione
tôi tạo ra một chỉ số t secundary rằng bắt đầu từ đâu tôi muốn có dữ liệu, nhưng tôi không biết làm thế nào để sử dụng chỉ số thid.
Bạn có đề xuất nào không?
Tôi đang khá mới, tôi đọc và tôi đồng ý. bye –
Cảm ơn bạn. Gói 'asP' đến từ đâu? – GSee
Nó chỉ là một fuction viết bởi tôi vì có ngôn ngữ claer. Tôi sử dụng nó để dễ dàng thay đổi từ nhân vật sang POSIXct. chức năng (timeVal, tz = "GMT", ...) { ## Để dễ dàng chuyển đổi từ chuỗi hoặc giây từ 1970-01-01 sang POSIXct chuyển đổi (lớp (timeVal [1]) [1], ký tự = as.POSIXct (timeVal, tz = tz, ...), POSIXct = timeVal, POSIXlt = timeVal, ISOdate (1970,1,1,0) + timeVal ) } –