想要使用 R 在列中组合日期和时间
Posted
技术标签:
【中文标题】想要使用 R 在列中组合日期和时间【英文标题】:Want to combine date and time in a column using R 【发布时间】:2018-12-25 05:18:42 【问题描述】:我有以下数据框
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。
【问题讨论】:
将格式从“%d-%m-%Y %H:%M:%S”更改为“%d/%m/%Y %H.%M.%S” 谢谢。成功了 【参考方案1】:Data$DT <- as.POSIXct(as.character(paste(data$Date, data$Time)), format="%d/%m/%Y %H.%M.%S")
或
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")
【讨论】:
【参考方案2】:使用包lubridate
:
data$DT <- with(data, ymd(Date) + hms(Time))
如果您希望该列是 POSIXct
,请在此之后执行以下操作:
data$DT <- as.POSIXct(data$DT)
【讨论】:
【参考方案3】:这应该是一个非常常见的问题,因此使用 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")))
【讨论】:
以上是关于想要使用 R 在列中组合日期和时间的主要内容,如果未能解决你的问题,请参考以下文章