为了清楚起见,在答案形式中,您需要一个datetime类,在R中表示POSIXct或POSIXlt . 通常我们使用 as.POSIXct 和 strptime 分别将字符串解析到每个类中( as.POSIXlt 存在,但很少使用),尽管如果你愿意,还有一些替代品 .
最基本的,
my_table$Start
my_table$End
my_table
## Sr.No. Start End
## 1 1 2001-05-22 2001-05-27 23:59:59
## 2 2 2001-05-28 2001-06-26 23:59:59
请注意,您需要指定 format 字符串的名称,因为 as.POSIXct 的第二个参数实际上是 tz (用于设置时区) . 另请注意,虽然 Start 看起来像是's missing a time, that',因为POSIX * t的打印方法不会在午夜打印时间,但它们仍然存储 .
如果您想在一行中更改两者,则可以使用
my_table[-1]
或者在dplyr中(比POSIXlt更喜欢POSIXct):
library(dplyr)
my_table %>% mutate_at(-1, as.POSIXct, format = '%d%b%Y:%H:%M:%S')
library(lubridate)
my_table$Start
my_table$End
# or dplyr
my_table %>% mutate_at(-1, dmy_hms)
这也回归同样的事情 .
数据
my_table
"28May2001:00:00:00"), class = "factor"), End = structure(c(2L,
1L), .Label = c("26Jun2001:23:59:59", "27May2001:23:59:59"), class = "factor")), .Names = c("Sr.No.",
"Start", "End"), class = "data.frame", row.names = c(NA, -2L))