【问题标题】:Trying to round off more digits subtracting dates in r尝试四舍五入减去 r 中的日期
【发布时间】:2021-08-03 17:14:47
【问题描述】:

我有以下数据集:

start_date <- c("2020-07-01 04:00:00", "2021-01-01 12:01:01")
end_date <- c("2021-01-10 01:12:11", "2021_02-02 12:12:12")
dates <- data.frame(start_date, end_date)

我正在尝试计算开始日期和结束日期之间的总时间。我首先使用解析日期时间

dates <- dates %>%
  mutate(start_date = parse_datetime(start_date, "%m/%d/%Y %H:%M:%s"))


dates <- dates %>%
  mutate(end_date = parse_datetime(end_date, "%m/%d/%Y %H:%M:%s"))

然后我将两者相减:

dates <- dates %>%
  mutate(date_diff = start_date - end_date)

但我最终得到了一个四舍五入到最接近小时的值,其中我想要一个四舍五入到最接近秒的值。我该怎么做?

【问题讨论】:

标签: r


【解决方案1】:

这不是一个四舍五入的问题。这是格式问题。而且您的示例代码不正确:格式字符串与日期字符串不匹配,并且其中一个日期字符串具有_,而它应该具有-

library(tidyverse)
library(hms)

tibble() %>%
  mutate(
    start_date = parse_datetime(c("2020-07-01 04:00:00", "2021-01-01 12:01:01")),
    end_date = parse_datetime(c("2021-01-10 01:12:11", "2021-02-02 12:12:12")),
    date_diff = start_date - end_date,
    x=as_hms(date_diff)
  ) %>%  
  as_tibble()
# A tibble: 2 x 4
  start_date          end_date            date_diff       x          
  <dttm>              <dttm>              <drtn>          <time>     
1 2020-07-01 04:00:00 2021-01-10 01:12:11 -192.88346 days -4629:12:11
2 2021-01-01 12:01:01 2021-02-02 12:12:12  -32.00777 days - 768:11:11

【讨论】:

    猜你喜欢
    • 2014-05-05
    • 2023-03-26
    • 2015-03-03
    • 2021-12-16
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多