想要使用R在列中合并日期和时间

时间:2018-07-17 13:21:17

标签: r date dataframe time-series arima

我有以下数据框

 Date             Time
10/03/2014       12.00.00
11/03/2014       13.00.00
12/03/2014       14.00.00

我想按如下方式创建一列

DT
10/03/2014 12.00.00
11/03/2014 13.00.00
12/03/2014 14.00.00

我跑步时

data$DT <- as.POSIXct(paste(x$Date, x$Time), format="%d-%m-%Y %H:%M:%S")

我得到了包含所有NA值的列DT。

3 个答案:

答案 0 :(得分:1)

这应该是一个非常普遍的问题,因此使用 dplyr 提供可重现的答案:

## reproducible example
library(dplyr)
library(magrittr)
DF <- data.frame(Date = c("10/03/2014", "11/03/2014", "12/03/2014"),
                 Time = c("12.00.00", "13.00.00", "14.00.00"))

DF_DT <- DF %>% 
  mutate(DateTime = paste(Date, Time)) %>% 
  mutate(across('DateTime', ~ as.POSIXct(.x, format = "%d/%m/%Y %H.%M.%S")))

答案 1 :(得分:0)

使用软件包lubridate

data$DT <- with(data, ymd(Date) + hms(Time))

如果您希望列为POSIXct,请在那之后执行以下操作:

data$DT <- as.POSIXct(data$DT)

答案 2 :(得分:-1)

Data$DT <- as.POSIXct(as.character(paste(data$Date, data$Time)), format="%d/%m/%Y %H.%M.%S")

OR

data$Time <- gsub('\\.',':',data$Time)
data$Date <- gsub('/','-',data$Date)

data$DT <- as.POSIXct(as.character(paste(data$Date, data$Time)), format="%d-%m-%Y %H:%M:%S")