Tiêu đề có: cách bạn chuyển đổi ngày POSIX thành ngày trong năm?Làm cách nào để chuyển đổi ngày POSIX thành ngày trong năm trong R?
Trả lời
Một cách khác là để định dạng các đối tượng sử dụng "POSIXt"
strftime()
:
R> today <- Sys.time()
R> today
[1] "2012-10-19 19:12:04 BST"
R> doy <- strftime(today, format = "%j")
R> doy
[1] "293"
R> as.numeric(doy)
[1] 293
đó là thích hợp hơn để ghi nhớ rằng ngày của năm là zero-có trụ sở tại các tiêu chuẩn POSIX.
Khi ?POSIXlt
tiết lộ, hậu tố $yday
đến POSIXlt
ngày (hoặc thậm chí một véc tơ như vậy) sẽ chuyển thành ngày trong năm. Lưu ý rằng POSIX tính ngày 1 tháng 1 là ngày 0, vì vậy bạn có thể muốn thêm 1 vào kết quả.
Tôi mất rất nhiều thời gian để tìm thấy điều này, vì vậy tôi nghĩ mình muốn ask and answer my own question.
Cách khác, gói lubridate
xuất sắc cung cấp chức năng yday
, đây chỉ là trình bao bọc cho phương thức trên. Nó thuận tiện xác định các chức năng tương tự cho các đơn vị khác (month
, year
, hour
, ...).
today <- Sys.time()
yday(today)
Một phần lý do tại sao tôi mất quá lâu nếu 'd' là đối tượng POSIXlt,' str (d) 'không cho biết dấu hiệu' d' có bất kỳ thuộc tính nào nữa. Điều này, và rằng toán tử '$' hoạt động trên nền vector của các đối tượng POSIXlt có nghĩa là nhiều hơn là một khai thác thông thường đang diễn ra. Tôi muốn quan tâm đến việc đọc thêm một chút về điều đó nếu có ai đó có thể giới thiệu một nơi tốt đẹp để bắt đầu. – Gregor
Và, để trả lời nhận xét của riêng tôi, 'thuộc tính' là lệnh mà tôi đang tìm kiếm,' thuộc tính (d) 'cung cấp tất cả các cách hiển thị' d'. – Gregor
Heh, tôi cũng đang đấu tranh với câu hỏi này. Có vẻ như bạn đã tự trả lời (trái ngược với việc chỉ thực hiện nó mà không cần đăng nó ở đây). Cảm ơn vì điều đó! – Mikko
Đây là cách làm thế nào tôi làm điều đó:
as.POSIXlt(c("15.4", "10.5", "15.5", "10.6"), format = "%d.%m")$yday
# [1] 104 129 134 160
Hoạt động tốt cho' POSIXlt' (như đã đề cập trong câu trả lời của tôi), nhưng không hoạt động cho các đối tượng 'POSIXct'. Ví dụ: 'Sys.time() $ yday' không hoạt động. – Gregor
Tôi nhận ra nó không phải là khá những gì người đăng đã được tìm kiếm, nhưng tôi cần phải chuyển đổi POSIX date- lần thành một phân đoạn ngày trong năm để phân tích chuỗi thời gian và kết thúc thực hiện việc này:
today <- Sys.time()
doy2015f<-difftime(today,as.POSIXct(as.Date("2015-01-01 00:00", tzone="GMT")),units='days')
Rất hữu ích! Bạn đã nhận được phiếu bầu của tôi. – Gregor
- 1. Chuyển đổi phần nhỏ trong ngày thành POSIX lần trong R
- 2. Làm thế nào để chuyển đổi số ngày nhất định thành năm, tháng và ngày trong MySQL?
- 3. Chuyển đổi ngày đến một ngày trong tuần vào R
- 4. Ngày và Thời gian trong các cột riêng biệt, chuyển đổi thành ngày giờ trong R
- 5. Chuyển đổi phút thành ngày, tuần, tháng và năm
- 6. Chuyển đổi các tuần trong năm sang ngày
- 7. Chuyển đổi dữ liệu trong năm tháng giờ ngày và phút cho đến nay trong R
- 8. Chuyển đổi ngày mySQL thành ngày Javascript
- 9. Chuyển đổi Epoch thành Ngày trong Matlab
- 10. Chuyển đổi một số (ngày) thành ngày, tháng và năm với jQuery
- 11. R giúp chuyển đổi hệ số thành ngày
- 12. Làm cách nào để chuyển đổi Dấu thời gian thành đối tượng Ngày hoặc Ngày giờ?
- 13. Tạo ngày giờ trong Rails bằng tháng, ngày và năm
- 14. VB.NET: Làm thế nào để chuyển đổi chuỗi thành Ngày?
- 15. Chuyển đổi chuỗi thành Ngày - C#
- 16. Chuyển đổi ngày sang ngày trong php
- 17. làm thế nào để chuyển đổi datetime thành ngày ngắn?
- 18. Định dạng ngày giờ Ngày trong năm
- 19. Định dạng ngày trong ngày, ngày tháng, năm
- 20. chuyển đổi một chuỗi ngày thành mili giây trong java
- 21. Chuyển đổi chuỗi ngày tháng trước năm 1970 thành dấu thời gian trong MySQL
- 22. Chuyển đổi chuỗi thành định dạng ngày trong android
- 23. Android Làm thế nào để thay đổi Tổng số ngày thành năm, tháng và ngày chính xác?
- 24. Làm thế nào để chuyển đổi ngày hex 'YMD' thành một ngày có thể đọc được?
- 25. Chuyển đổi ngày trong AWK
- 26. Làm cách nào để chuyển đổi số bạn nhận được từ ngày tháng thành tên trong ngày?
- 27. Cách chuyển đổi ngày chuỗi ký tự thành lớp ngày nếu giá trị ngày bị thiếu
- 28. Làm thế nào để biến các cột năm, tháng và ngày riêng biệt thành một ngày?
- 29. Chuyển đổi chuỗi thành một ngày trong DB2
- 30. Làm cách nào để chuyển đổi một 'Fixnum' thành một ngày trong Rails 3.1.3?
Chỉ cần chạy vào tập dữ liệu đầu tiên của tôi với cột 'POSIXct'. Dường như thời gian để đánh dấu bạn là câu trả lời được chấp nhận. – Gregor
@Gavin, bạn cũng có thể chuyển đổi ngày thành ngày kể từ dữ liệu được chỉ định, ví dụ: số ngày kể từ ngày 1 tháng 3 năm 2015? Tôi cũng có thể đăng như một câu hỏi mới ... –
@ B.Davis Bạn có thể làm một cái gì đó như 'as.numeric (Sys.Date() - as.Date ('2015-03-01', format = '% Y- % m-% d ')) ' – Henry