R 什么';对时间文本数据进行分类的最佳方法是什么?

R 什么';对时间文本数据进行分类的最佳方法是什么?,r,machine-learning,text-classification,R,Machine Learning,Text Classification,这是一个直截了当的问题: 我的时间文本数据如下所示: 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很难说这会在哪里打破,但也

这是一个直截了当的问题:

我的时间文本数据如下所示:

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

很难说这会在哪里打破,但也许它会给你一些想法:

库(tidyverse)
倍%
str_替换(“…小时”,“60”)%>%
str_替换(“一半”、“30”)%>%
STRU分割(“\\-”)%>%
映射(~ifelse(长度(.)>1,平均值(如数字(.),))%>%
map(~ifelse(is.character(.)、str_extract_all(,“[:digit:]+]))%>%
展平()%>%
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

您的数据中有多少个观测值?大约500条记录或SOI如果您的示例显示了错误值的全部范围,那么我可以简单地(1)标记包含“分钟”一词的值,然后用
子项删除“分钟”一词。然后(2)标记长度大于的值,例如,四个字符,然后使用
ifelse
str\u detect
或手动对这些字符重新编码。您应该根据这些数字建立一个字典,并为可能的单词类型指定数字表示。使用Levenshtein距离来近似字典中最接近的表示。使用正则表达式检查字符串格式的Write if条件应该可以完成这项工作。