R中的文本分析

时间:2019-06-19 09:57:56

标签: r comparison grepl

在Base r中我如何获得

  • Ref2-Ref的前2个首字母,例如AC12 = AC,AL34 = AL
  • 街道2-每个街道的首字母缩写,例如修道院法院=
    AC,阿尔伯特花园= AG。
  • 比较Ref2和Street2,以查看是否相同
  • 然后只使用那些不一样的东西
    计算

2 个答案:

答案 0 :(得分:1)

您可以尝试以下

> substr(Ref2,1,2) ==gsub("[a-z| ]","",Street2)
[1]  TRUE FALSE

您可以使用该逻辑矢量从原始数据中删除FALSE值。
该代码的工作方式是仅从Ref2中获取前两个字符,并从Street2中删除所有小写字符+空格。
数据

Ref2 = c("AC12","AL34")
Street2=c("Abbey Court","Albert Gardens")

答案 1 :(得分:0)

只要要提取每个单词的首字母(大小写不一致或整个单词都相同)的任何人,都可以添加一个选项。

这还包括过滤表以继续使用(使用data.table)。

library(data.table)
library(stringr)

data_example <- data.table(Ref2 = c("AC12", "AL34", "AG34"), 
                           Street = c("Abbey Court", "Albert gardens", "albert gardens"))

data_example <- data_example[tolower(str_extract(Ref2, "^.{2}")) == tolower(paste0(str_extract(Street, "^."), str_extract(Street, "(?<=\\s).")))]

> View(data_example)
> data_example
   Ref2         Street
1: AC12    Abbey Court
2: AG34 albert gardens