Tôi có một bất thường chuỗi thời gian (với DateTime và RainfallValue) trong một tập tin csv C:\SampleData.csv
:Tạo thường xuyên 15 phút chuỗi thời gian từ bất quy tắc chuỗi thời gian
DateTime,RainInches
1/6/2000 11:59,0
1/6/2000 23:59,0.01
1/7/2000 11:59,0
1/13/2000 23:59,0
1/14/2000 0:00,0
1/14/2000 23:59,0
4/14/2000 3:07,0.01
4/14/2000 3:12,0.03
4/14/2000 3:19,0.01
12/31/2001 22:44,0
12/31/2001 22:59,0.07
12/31/2001 23:14,0
12/31/2001 23:29,0
12/31/2001 23:44,0.01
12/31/2001 23:59,0.01
Lưu ý: Các tốn nhiều thời gian không thường xuyên các bước có thể là 1 phút, 15 phút, 1 giờ, v.v. Ngoài ra, có thể có nhiều quan sát trong khoảng thời gian 15 phút mong muốn.
tôi đang cố gắng để tạo ra 15 phút chuỗi thời gian thường xuyên từ 2000/01/01 đến 2001/12/31 rằng nên xem xét như:
2000-01-01 00:15:00 0.00
2000-01-01 00:30:00 0.00
2000-01-01 00:45:00 0.00
...
2001-12-31 23:30:00 0.01
2001-12-31 23:45:00 0.01
Lưu ý: Các chuỗi thời gian là thường xuyên với khoảng thời gian 15 phút, điền dữ liệu còn thiếu bằng 0. Nếu có nhiều hơn một điểm dữ liệu trong khoảng thời gian 15 phút, chúng sẽ được cộng lại.
Dưới đây là là mã của tôi:
library(zoo)
library(xts)
filename = "C:\\SampleData.csv"
ReadData <- read.zoo(filename, format = "%m/%d/%Y %H:%M", sep=",", tz="UTC", header=TRUE) # read .csv as a ZOO object
RawData <- aggregate(ReadData, index(ReadData), sum) # Merge duplicate time stamps and SUM the corresponding data (CAUTION)
RawDataSeries <- as.xts(RawData,order.by =index(RawData)) #convert to an XTS object
RegularTimes <- seq(as.POSIXct("2000-01-01 00:00:00", tz = "UTC"), as.POSIXct("2001-12-31 23:45:00", tz = "UTC"), by = 60*15)
BlankTimeSeries <- xts((rep(0,length(RegularTimes))),order.by = RegularTimes)
MergedTimeSeries <- merge(RawDataSeries,BlankTimeSeries)
TS_sum15min <- period.apply(MergedTimeSeries,endpoints(MergedTimeSeries, "minutes", 15), sum, na.rm = TRUE)
TS_align15min <- align.time(TS_sum15min [endpoints(TS_sum15min , "minutes", 15)], n=60*15)
Vấn đề: Thời gian đầu ra loạt TS_align15min
: khối (a) đã lặp đi lặp lại của thời gian tem (b) bắt đầu (một cách bí ẩn) từ năm 1999, như sau:
1999-12-31 19:15:00 0
1999-12-31 19:30:00 0
1999-12-31 19:45:00 0
1999-12-31 20:00:00 0
1999-12-31 20:15:00 0
1999-12-31 20:30:00 0
What am I doing wrong?
Thank you for any direction!
Tạo một số mã tái sản xuất cho chúng ta, dput () rất hữu ích. Cũng khai báo việc bạn sử dụng các gói đã đóng góp với thư viện hoặc yêu cầu. – mdsumner
@mdsumner Cảm ơn bạn đã đề xuất. Tôi đã thêm dữ liệu mẫu có thể tái sản xuất và mã. – akashwani
Không, nếu nó phụ thuộc vào một tập tin dữ liệu chúng tôi không có nó không thể tái sản xuất. Xem câu trả lời của tôi cho _random data_ với một hạt giống đã cho - làm cho nó có thể tái sản xuất. –