r 从字符格式的时间数据中提取小时
r extract hour from time data in character format
我有一个存储时间数据的列。这是字符格式。
c("04:00", "08:55", "15:30", "18:50", "19:15", "12:00")
我的目标是提取小时数。我尝试了几个选项,lubridate::hour、chron::hour 等这些都不起作用。我收到几个错误。
最终结果应该是这样的
04, 08, 15, 18, 19, 12
有什么建议吗??
stringr + 正则表达式就可以了
library(stringr)
str_extract(string = c("04:00", "08:55", "15:30", "18:50", "19:15", "12:00"),pattern = '^[:digit:]{2}')
[1] "04" "08" "15" "18" "19" "12"
在基础 R 中使用 substr
:
h <- c("04:00", "08:55", "15:30", "18:50", "19:15", "12:00")
substr(h, 1, 2)
#[1] "04" "08" "15" "18" "19" "12"
只是添加一个 lubridate
答案:
library(lubridate)
library(tidyverse)
t <- c("04:00", "08:55", "15:30", "18:50", "19:15", "12:00")
t %>%
hm() %>%
hour()
在使用 lubridate::hour
或 lubridate::period_to_seconds
等 lubridate 中的函数之前,您首先需要转换数据。因为你的vector格式是hour:min,那我们先用lubridate::hm
.
我有一个存储时间数据的列。这是字符格式。
c("04:00", "08:55", "15:30", "18:50", "19:15", "12:00")
我的目标是提取小时数。我尝试了几个选项,lubridate::hour、chron::hour 等这些都不起作用。我收到几个错误。
最终结果应该是这样的
04, 08, 15, 18, 19, 12
有什么建议吗??
stringr + 正则表达式就可以了
library(stringr)
str_extract(string = c("04:00", "08:55", "15:30", "18:50", "19:15", "12:00"),pattern = '^[:digit:]{2}')
[1] "04" "08" "15" "18" "19" "12"
在基础 R 中使用 substr
:
h <- c("04:00", "08:55", "15:30", "18:50", "19:15", "12:00")
substr(h, 1, 2)
#[1] "04" "08" "15" "18" "19" "12"
只是添加一个 lubridate
答案:
library(lubridate)
library(tidyverse)
t <- c("04:00", "08:55", "15:30", "18:50", "19:15", "12:00")
t %>%
hm() %>%
hour()
在使用 lubridate::hour
或 lubridate::period_to_seconds
等 lubridate 中的函数之前,您首先需要转换数据。因为你的vector格式是hour:min,那我们先用lubridate::hm
.