首页 > 解决方案 > 从文本中去除数字:R

问题描述

你好,我的数据集包含文本、整数和小数,文本是一个包含所有这些混合的段落,试图从文本内容中只去除整数和小数,大约有 30k特罗条目。

数据输入格式:

  1. 这个。是一个很好的 13 部分。135.67 代码
  2. 如何在内容6879中去除66.8
  3. 从中获取数字 3475.5。数据。879 在这 369426

输出:

  1. 13 135.67
  2. 66.8 6879
  3. 3475.5 879 369426

我尝试一一替换所有字母,但 26+26 替换所有使代码冗长,并替换“。” 替换“。” 从数字也谢谢,Praveen

标签: rregex

解决方案


不要忘记R已经内置了正则表达式函数:

input <- c('This. Is a good 13 part. of 135.67 code', 'how to strip 66.8 in the content 6879',
           'get the numbers 3475.5 from. The data. 879 in this 369426')

m <- gregexpr('\\b\\d+(?:\\.\\d+)?\\b', input)
(output <- lapply(regmatches(input, m), as.numeric))

这产生

[[1]]
[1]  13.00 135.67

[[2]]
[1]   66.8 6879.0

[[3]]
[1]   3475.5    879.0 369426.0

推荐阅读