我有以下数据框
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。
答案 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")