2014-04-15 12 views
12

Câu hỏi này có thể đơn giản đối với một số bạn, nhưng chịu với tôi kể từ khi tôi là một người mới bắt đầu trong R.làm thế nào để chuyển đổi yếu tố thành DateTime trong R?

Tôi có một dataframe mà có một cột yếu tố (gọi là thời gian) chứa dữ liệu DateTime như sau:

time 
01/01/2011 00:10 
02/01/2011 03:00 
03/01/2011 05:00 
04/01/2011 10:03 

Tôi muốn chuyển đổi cột này thành cột DateTime trong R. Tôi đã tìm kiếm và thử một số chức năng nhưng nó cho tôi kết quả 'NA'. Các chức năng sau đây là những chức năng tôi đã thử:

> dataframe1$datetime <- as.POSIXlt(as.character(dataframe1$time), format="%d/%m/%Y %H:%M") 
> dataframe1$datetime <- as.POSIXlt(strptime(dataframe1$time), format="%d/%m/%Y %H:%M") 
> dataframe1$datetime <- as.POSIXlt(dataframe1$time, format="%d/%m/%Y %H:%M") 
> dataframe1$datetime <- as.chron(dataframe1$time, "%d/%m/%Y %H:%M") 

Tôi không biết những gì khác để thử. Tôi muốn lý tưởng để thêm ba cột cụ thể là datetime, ngày tháng và thời gian.

Trả lời

16

Hãy thử:

dataframe1$datetime <- strptime(x = as.character(dataframe1$datetime), 
           format = "%d/%m/%Y %H:%M") 
+1

tôi đã có thể trích xuất ngày nhưng không phải thời điểm đó. Tôi đã sử dụng 'dataframe1 $ datetime <- strptime (x = as.character (dataframe1 $ datetime), định dạng ="% H:% M ")' bất kỳ ý tưởng nào? –

+0

Kiến thức của tôi không phải là một lớp ngày/giờ chỉ với H-M-S; lựa chọn của bạn là Y-M-D hoặc Y-M-D-H-M-S-v.v. Nếu bạn tìm thấy một, mặc dù, tôi rất muốn tìm hiểu về nó! –

+1

Tôi tìm thấy một giải pháp 'dataframe1 $ time <- format (dataframe1 $ datetime,"% H:% M:% S ")' :) –

2

Có lẽ điều đơn giản nhất để làm là sử dụng lubridate gói trong đó có một số lượng lớn các chức năng cho ngày thao tác. Sau đây sẽ chuyển đổi thời gian của bạn thành đối tượng POSIXct:

library(lubridate) 
mdy_hm(as.character(dataframe1$time)) 

Xem ?mdy để xem các chức năng phân tích ngày khác nhau.

Đối với một phiên bản hơi dài dòng nữa mà không dựa vào lubridate

strptime(x = as.character(dataframe1$datetime), format = "%d/%m/%Y %H:%M") 
Các vấn đề liên quan