r - 对时间文本数据进行分类的最佳方法是什么?
问题描述
这是一个直截了当的问题:
我有时间文本数据,如下所示:
110
120+
50 分钟
50 分钟
35-40
30
1 小时半
1 小时 20 分钟
清理这些数据以便我分析它的最佳方法是什么?这是机器学习的工作吗?如果是这样,在这种情况下最能帮助我的库/工具是什么?
一种想法是使用 gsub:
"as.numeric(gsub("([0-9]+).*$", "\1", Timedata))" 但这会过度简化数据。
我希望数据在清理后看起来像这样:
110
120
50
50
37.5
30
90
80
解决方案
很难说这会在哪里中断,但也许它会给你一些想法:
library(tidyverse)
times <- c("110", "120+", "50 minutes", "50 Minutes",
"35-40", "30", "1 hour and a half", "1 hour 20 Minutes")
times %>%
str_replace("..hour", "60") %>%
str_replace("half", "30") %>%
str_split("\\-") %>%
map(~ ifelse(length(.) > 1, mean(as.numeric(.)), .)) %>%
map(~ ifelse(is.character(.), str_extract_all(., "[[:digit:]]+"), .)) %>%
flatten() %>%
map_dbl(~ ifelse(is.character(.), sum(as.numeric(.)), .))
#> [1] 110.0 120.0 50.0 50.0 37.5 30.0 90.0 80.0
推荐阅读
- php - Docker:如何在 PHP 中正确启用对 imagemagick 的 .webp 支持?
- javascript - 将缓冲区对象转换为图像
- ajax - 模型 [App\\User] {id} 没有查询结果
- javascript - 是否可以同时在多个字符串上使用包含和替换方法?
- json - 如何在swift 4中解析Json字典
- scala - 具有 SASL_SSL 身份验证的 Kafka Spark 结构化流
- python-3.x - 无法访问数据框的列
- java - 在重载构造函数后总是执行一些代码
- c++ - 在增强精神中用不同的字符串替换点燃
- php - 将带有排序、搜索和分页功能的引导表添加到我的 PHP 函数中