首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将时间变量转化为R中的因子

将时间变量转化为R中的因子
EN

Stack Overflow用户
提问于 2020-04-02 19:59:49
回答 1查看 110关注 0票数 0

我正在处理一个事务数据集,它以hhmmss格式报告事务时间。例如,204629,215450等

我想从给定的列中推导出一个因子变量,其水平表示一天中的某些小时,例如12-3点、3-6点等。

我可以考虑使用str_sub函数从给定变量中选择小时值,并将它们转换为因子。但是,是否有更有效的方法来实现这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-02 20:19:10

您可以使用dplyr::mutatestringr::str_sub创建hour列,然后使用cuthour列划分为您的句点。

代码语言:javascript
运行
复制
library(dplyr)
library(stringr)
library(lubridate)

tibble(string = c("215450", "220102", "020129")) %>% 
  mutate(hour = str_sub(string, 1, 2) %>% as.numeric,
         minute = str_sub(string, 3, 4) %>% as.numeric,
         second = str_sub(string, 5, 6) %>% as.numeric,
         time = str_c(hour, minute, second, sep = ":") %>% hms()) %>% 
  mutate(period = cut(hour, breaks = 2, labels = c("period one", "period two")))

# A tibble: 3 x 6
  string  hour minute second time        period    
  <chr>  <dbl>  <dbl>  <dbl> <Period>    <fct>     
1 215450    21     54     50 21H 54M 50S period two
2 220102    22      1      2 22H 1M 2S   period two
3 020129     2      1     29 2H 1M 29S   period one
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61000082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档