您在数据框中有2列。第1列的日期与2017-01-01相同,第2列的时间戳如下午1:00。
我需要创建另一个列,结合这两个信息,并给我2017-01-01 13:00:00
答案 0 :(得分:5)
使用as.POSIXct
将字符转换为日期格式。
df$date.time <- as.POSIXct(paste(df$date, df$time), format = "%Y-%m-%d %I:%M %p")
编辑:
提供更多上下文...将日期和时间列粘贴在一起以获取字符串2017-001-01 1:00 PM
。
然后使用format =
将字符串的格式输入为POSIXct参数。您可以看到符号及其含义here之间的关系。
答案 1 :(得分:1)
library(lubridate)
A <- data.frame(X1 = ymd("2017-01-01"),
X2 = "1:00 PM", stringsAsFactors=F)
# X1 X2
# 1 2017-01-01 1:00 PM
library(dplyr)
library(lubridate)
temp <- A %>%
mutate(X3 = ymd_hm(paste(X1, X2)))
X1 X2 X3
<date> <chr> <dttm>
1 2017-01-01 1:00 PM 2017-01-01 13:00:00
B <- data.frame(X1 = ymd("2017-01-01", "2016-01-01"),
X2 = c("1:00 PM", "2:00 AM"), stringsAsFactors=F)
temp <- B %>%
mutate(X3 = ymd_hm(paste(X1, X2)))
# X1 X2 X3
# <date> <chr> <dttm>
# 1 2017-01-01 1:00 PM 2017-01-01 13:00:00
# 2 2016-01-01 2:00 AM 2016-01-01 02:00:00