2013-02-05 30 views
5

tôi muốn tạo ra chuỗi ngày với mã tiếp theo:Tạo chuỗi ngày

vm1=strptime("2000-01-01 00:00:00", format="%Y-%m-%d %H:%M:%S") 
vm2=strptime("2011-12-31 23:55:00", format="%Y-%m-%d %H:%M:%S") 
vm3=seq(vm1, vm2, by = min(300)) 

Vấn đề là trên một số chương trình ngày cụ thể thay đổi múi giờ và bỏ qua một phần của dữ liệu được tạo. Ví dụ:

vm3[24500:24510] 

Tôi sẽ đánh giá cao bất kỳ trợ giúp hoặc hướng dẫn nào.

+0

Cảm ơn Richie, bằng cách thêm tz UTC giờ đây hoạt động tốt, trước đây tôi đã sử dụng CET và có vẻ như đây là vấn đề. – Zoran

+0

Nếu câu trả lời @ richie-cotton giải quyết được vấn đề của bạn, cách tốt nhất để hiển thị nó cho những người dùng khác và cảm ơn anh ấy là đưa ra câu trả lời của anh ấy và chấp nhận nó với dấu kiểm màu xanh lục. – juba

Trả lời

7

Phần đó của vm3 có vẻ ổn với tôi (múi giờ ở Vương quốc Anh, GMT/BST múi giờ). Xem xét buộc ngày của bạn ở thời gian quốc tế và sau đó điều chỉnh theo múi giờ địa phương của bạn sau này.

vm1=strptime("2000-01-01 00:00:00", format="%Y-%m-%d %H:%M:%S", tz = "UTC") 
vm2=strptime("2011-12-31 23:55:00", format="%Y-%m-%d %H:%M:%S", tz = "UTC") 
vm3=seq(vm1, vm2, by = "300 mins") 
any(is.na(vm3)) #FALSE 

BTW, bạn muốn có một lập luận by của "300 mins", không min(300). min là hàm tối thiểu; nó không liên quan gì đến phút.