2017-09-30 64 views
1

我有兩個名爲「Date」和「Time」的對象。日期爲YYYY.mm.dd,時間爲HH:MM格式。我需要爲我的金融計量經濟學分配創建一個日期和時間對象。通過兩個字符串對象創建日期/時間對象

首先我兩個對象粘貼到一起,並創建一個字符向量例如像以下:

 Date Time Open High  Low 
1 2017.09.01 00:00 1.19013 1.19017 1.19013 
2 2017.09.01 00:01 1.19015 1.19017 1.19015 

然而,當我試圖轉換「date_time_c」字符向量爲「POSIXct」格式,我用下面的代碼。

DATA<-DAT%>%select(Date,Time,Open,High,Low)%>% 
     mutate(Date_Time=as.POSIXct(paste(DATA$Date, DATA$Time), format="%YYYY.%mm.%dd %H:%M")) 

但作爲一個結果,我收到託運時,新創建的「DATE_TIME」對象

> head(DATA$Date_Time) 
[1] NA NA NA NA NA NA 

我應該先投我的性格向量整數「空」的價值觀我不知道..

誰能幫我對這個錯誤

+1

'格式= 「%Y.%M%d%H:%M」'無重複'YYYY'等 –

回答

1

您還可以使用lubridate包(Tidyverse的一部分)具有以下功能:將字符串轉換爲使用功能,如ymd_hm()日期或日期時間對象。

library(tidyverse) 
library(lubridate) 

df <- tribble(~Date, ~Time, ~Open, ~High, ~Low, 
"2017.09.01", "00:00", "1.19013", "1.19017", "1.19013", 
"2017.09.01", "00:01", "1.19015", "1.19017", "1.19015") 

df %>% mutate(Date.Time = ymd_hm(paste(Date, Time, sep=" "))) 

產生

# A tibble: 2 x 6 
     Date Time Open High  Low   Date.Time 
     <chr> <chr> <chr> <chr> <chr>    <dttm> 
1 2017.09.01 00:00 1.19013 1.19017 1.19013 2017-09-01 00:00:00 
2 2017.09.01 00:01 1.19015 1.19017 1.19015 2017-09-01 00:01:00 
2

IIUC,你可以試試這個。

dt['Date_Time']=paste(dt$Date,dt$Time) 
dt$Date_Time=strptime(dt$Date_Time, 
       format = "%Y.%m.%d %H:%M") 
dt 
     Date Time Open High  Low   Date_Time 
1 2017.09.01 00:00 1.19013 1.19017 1.19013 2017-09-01 00:00:00 
2 2017.09.01 00:01 1.19015 1.19017 1.19015 2017-09-01 00:01:00 

或者

dt$Date_Time=as.POSIXct(dt$Date_Time, 
         format = "%Y.%m.%d %H:%M") 
dt 
     Date Time Open High  Low   Date_Time 
1 2017.09.01 00:00 1.19013 1.19017 1.19013 2017-09-01 00:00:00 
2 2017.09.01 00:01 1.19015 1.19017 1.19015 2017-09-01 00:01:00 
相關問題