将两列日期和时间数据转换为一列

8

我有一个简单的数据框:

D <- c("2012/12/14", "2012/12/14")
Time <- c("18:40:37", "18:40:48")
df1 <- data.frame(D, Time)

我希望将日期和时间信息的两个列合并成一个,最好的格式是日期、月份、年份、时间。您可以如何实现这一点呢?
3个回答

16
R> within(df1, { timestamp=format(as.POSIXct(paste(D, Time)), "%d/%m/%Y %H:%M:%S") })

           D     Time           timestamp
1 2012/12/14 18:40:37 14/12/2012 18:40:37
2 2012/12/14 18:40:48 14/12/2012 18:40:48

非常感谢@rcs - 但是我如何在我的数据框(df1)中获得一个额外的列,其中包含这个组合日期/时间列? - KT_1
3
我知道这条留言晚了两年,但回答应该真正是 df1 <- within... - Zachary Weixelbaum

2
稍微简短的替代方案可能是:
df1 <- within(df1, { timestamp=strptime(paste(D, Time), "%Y/%m/%d%H:%M:%S") })
df1
       D     Time           timestamp
1 2012/12/14 18:40:37 2012-12-14 18:40:37
2 2012/12/14 18:40:48 2012-12-14 18:40:48

1
df1$TS <- as.POSIXct(paste(df1$D, df1$Time))

这将在df1中创建一个额外的列TS,将日期和时间结合在一起,并且类型为POSIXct。您可以通过确认。
str(df1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接