如何使用 POSIXct 将日期和时间转换为数字以及如何计算时间?
How to convert date & time to numeric by using POSIXct and how to calculate the time?
嗨,朋友们,这两列(starttime/stoptime)都在字符 class 中,我如何转换为数字(POSIXct)以查找时间消耗,谢谢
开始时间
2015 年 12 月 31 日 23:48
2015 年 12 月 31 日 23:47
2015 年 12 月 31 日 23:37
2015 年 12 月 31 日 23:37
停止时间
2015 年 12 月 31 日 23:51
2015 年 12 月 31 日 23:53
2015 年 12 月 31 日 23:43
2016 年 1 月 1 日 0:02
lubridate 包中的函数 parse_date_time
是一种处理时间的简洁方法。操作方法如下:
library(tidyverse)
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following objects are masked from 'package:base':
#>
#> date, intersect, setdiff, union
tribble(
~starttime, ~stoptime,
"12/31/2015 23:48", "12/31/2015 23:51",
"12/31/2015 23:47", "12/31/2015 23:53"
) %>%
mutate(
starttime = starttime %>% parse_date_time("%m/%d/%y %H:%M"),
stoptime = stoptime %>% parse_date_time("%m/%d/%y %H:%M"),
duration = stoptime - starttime
)
#> # A tibble: 2 x 3
#> starttime stoptime duration
#> <dttm> <dttm> <drtn>
#> 1 2015-12-31 23:48:00 2015-12-31 23:51:00 3 mins
#> 2 2015-12-31 23:47:00 2015-12-31 23:53:00 6 mins
由 reprex package (v2.0.0)
于 2021-09-09 创建
此外,您还可以使用 lubridate
-
中的 mdy_hm
函数
library(dplyr)
library(lubridate)
df <- df %>% mutate(across(c(starttime, stoptime), mdy_hm))
在基础 R 中,您可以使用 as.POSIXct
df[1:2] <- lapply(df[1:2], as.POSIXct, format = "%m/%d/%Y %H:%M")
嗨,朋友们,这两列(starttime/stoptime)都在字符 class 中,我如何转换为数字(POSIXct)以查找时间消耗,谢谢
开始时间
2015 年 12 月 31 日 23:48
2015 年 12 月 31 日 23:47
2015 年 12 月 31 日 23:37
2015 年 12 月 31 日 23:37
停止时间
2015 年 12 月 31 日 23:51
2015 年 12 月 31 日 23:53
2015 年 12 月 31 日 23:43
2016 年 1 月 1 日 0:02
lubridate 包中的函数 parse_date_time
是一种处理时间的简洁方法。操作方法如下:
library(tidyverse)
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following objects are masked from 'package:base':
#>
#> date, intersect, setdiff, union
tribble(
~starttime, ~stoptime,
"12/31/2015 23:48", "12/31/2015 23:51",
"12/31/2015 23:47", "12/31/2015 23:53"
) %>%
mutate(
starttime = starttime %>% parse_date_time("%m/%d/%y %H:%M"),
stoptime = stoptime %>% parse_date_time("%m/%d/%y %H:%M"),
duration = stoptime - starttime
)
#> # A tibble: 2 x 3
#> starttime stoptime duration
#> <dttm> <dttm> <drtn>
#> 1 2015-12-31 23:48:00 2015-12-31 23:51:00 3 mins
#> 2 2015-12-31 23:47:00 2015-12-31 23:53:00 6 mins
由 reprex package (v2.0.0)
于 2021-09-09 创建此外,您还可以使用 lubridate
-
mdy_hm
函数
library(dplyr)
library(lubridate)
df <- df %>% mutate(across(c(starttime, stoptime), mdy_hm))
在基础 R 中,您可以使用 as.POSIXct
df[1:2] <- lapply(df[1:2], as.POSIXct, format = "%m/%d/%Y %H:%M")