我有一个字符类型的时间列。我想将其转换为某种时间类型。我喜欢使用lubridate
包,但不喜欢输出的符号。我的目标是稍后对每小时的日期进行分组并计算案例数。 df %>% group_by(floor_date(Tijd, "hour"))
。
数据框:
df <- structure(list(Tijd = c("01:00:00", "01:27:00", "09:25:00", "14:39:00",
"15:35:00")), .Names = "Tijd", row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame"))
以下代码生成了floor_date()
函数无法使用的类型。
library(tidyverse)
library(lubridate)
df %>%
mutate(Tijd = hms(Tijd))
输出:
# A tibble: 5 x 1
Tijd
<S4: Period>
1 1H 0M 0S
2 1H 27M 0S
3 9H 25M 0S
4 14H 39M 0S
5 15H 35M 0S
以下代码给出错误:
df %>%
mutate(Tijd = hms(Tijd)) %>%
group_by(floor_date(Tijd, "hour"))
Error in mutate_impl(.data, dots) :
Evaluation error: 'origin' must be supplied.
答案 0 :(得分:1)
一种方式-
Sql Script
答案 1 :(得分:0)
如果您对chron
方法感兴趣,那么
library(dplyr)
library(chron)
df %>%
mutate(Tijd = hours(times(Tijd)))
给予
Tijd
<dbl>
1 1.00
2 1.00
3 9.00
4 14.0
5 15.0
示例数据
df <- structure(list(Tijd = c("01:00:00", "01:27:00", "09:25:00", "14:39:00",
"15:35:00")), .Names = "Tijd", row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame"))