2014-09-19 69 views
0

我正在嘗試創建一個data.frame,其中包含'datetime'和'numeric'字段並向其中插入數據。 R是新手,具有'新手'級別的技能,我不知道如何格式化它...如何格式化R data.frame中的日期字段?

下面是我嘗試工作的代碼。 注意'註釋掉'部分是變體。 我正在爲'時間'字段獲取各種奇怪的輸出。

#df.02 <- data.frame(Time = as.Date(character()) 
#df.02 <- data.frame(Time = as.Date(numeric()) 
#df.02 <- data.frame(Time = as.POSIXct(strptime(character()) 
df.02 <- data.frame(Time = as.POSIXct(strptime(character()) 
#df.02 <- data.frame(Time = as.Date(character()) 
       , Open = numeric() 
       , High = numeric() 
       , Low = numeric() 
       , Close = numeric() 
       , Volume = numeric() 
       , stringsAsFactors = FALSE) 

time <- as.Date("01.02.2014 00:00:00.000") 
#time <- as.Date("01.02.2014 00:00:00.000", format = "%d.%m.%Y %H:%M:%S") 
#time <- strptime("01.02.2014 00:00:00.000", "%d.%m.%Y %H:%M:%OS") 
#time <- as.POSIXct("01.02.2014 00:00:00.000", format = "%d.%m.%Y %H:%M:%S") 

open <- 1111.111 
high <- 2222.222 
low <- 3333.333 
close <- 4444.444 
volume <- 0.0000 

df.02 <- cbind(Time = time, Open = open, High = high, Low = low, Close = close, Volume = volume) 
df.02 

任何幫助將不勝感激!

+0

我強烈建議結帳潤滑包裝,它是與日期時間相關的一切事物的一站式商店。 – jarfa 2014-09-19 15:38:30

回答

2

我同意jarfa。 lubridate是一個很棒的包裝。例如,你可以這樣做:

library(lubridate) 
time <- mdy_hms("01.02.2014 00:00:00.000") 

而現在,如果你檢查類的「時間」,它是「POSIXct」「POSIXt」。

+0

我使用哪個data.frame聲明版本?我收到時間字段的數字結果...時間打開高低 [1,] 1388620800 1111.111 2222.222 3333.333 關閉量 [1,] 4444.444 0 – user1481614 2014-09-20 04:29:34

+0

我不確定您的意思是「聲明」 ,但這裏的做到這一點的一種方法: 數據< - data.frame(時間= 「2014年2月1日00:00:00.000」, 開放= 1111.111, 高= 2222.222, 低= 3333.333, 接近= 4444.444 , volume = 0.0000) Data $ time < - mdy_hms(Data $ time) – LauraS 2014-09-21 17:18:06