首页 > 解决方案 > 地址解析:识别模式,然后将值剪切并粘贴到同一列中的正确位置

问题描述

我对 R 很陌生,并且仍然掌握它的窍门,现在我正在尝试整理一些数据。我在我的领域中看到的最常见的事情之一是带有混乱数据的地址。有时我会看到例如主街 206 123 号套房。套件 206 显然处于错误的位置。最后三个测试对象有错误,此时我非常沮丧。去散步,现在准备通过寻求帮助再次解决问题。

我尝试从地址变量中删除套件 206,但没有成功。

我尝试了以下代码:

library(tidyverse)
library(stringr)

df <- readxl::read_excel("path")

df1 <- df %>% select(Address,`Desired Result`)

address_list <- df1 %>% mutate(list(`Address`))

names(address_list) = c('Address','Desired Address','Address List')

splice_list <- address_list[-(2:3)]

new <- (splice_list[c(1)]) 

test <- sub("suite", "", new)
names(test) = c("Address", "New Address")

我尝试了其他方法,例如使用 test <- "( [a-z]{3}[0-9]{3})" 来检测模式并替换模式。我还考虑了一种更简单的方法来做到这一点,例如识别模式,然后拼接识别的模式(值),然后将其插入新列,然后最后连接。或者一个可以检查数据集中每一行并根据模式替换并移动到正确位置的函数会很好。

具有所需结果的地址列的屏幕截图:

具有所需结果的地址列的屏幕截图

标签: r

解决方案


地址解析问题的解决方案

我相信这可以用更少的行来完成。


推荐阅读