r-将缩写替换为in地址

r-将缩写替换为in地址,r,regex,R,Regex,这可能是一个常见的用例,我是用python编写的,但在本例中,我必须在R中编写。如何替换rd to road、st to street等。。在R 假设我有一个这样的映射字典 dict = { st : street, rd : road, Ln : Lane, Pl : Place} 在我的df中 Address 2/20,Queen St,London,UK 1,King Ln,Paris,France 5,Stuart Pl,Paris,France 我怎么才能得到这个 Address

这可能是一个常见的用例,我是用python编写的,但在本例中,我必须在R中编写。如何替换rd to road、st to street等。。在R

假设我有一个这样的映射字典

dict = { st : street, rd : road, Ln : Lane, Pl : Place}
在我的df中

Address
2/20,Queen St,London,UK
1,King Ln,Paris,France
5,Stuart Pl,Paris,France
我怎么才能得到这个

Address
2/20,Queen Street,London,UK
1,King Lane,Paris,France
5,Stuart Place,Paris,France

谢谢。

您可以使用功能
gsub
gsub(“Ln”,“Lane”,addresses)
其中
addresses
是一个以您的地址为字符串的向量,将所有出现的“Ln”替换为“Lane”。你可以用正则表达式来处理这个问题,但我认为这对你没什么帮助

所以你所要做的就是调用这个函数来替换你想做的所有替换,你就完成了。R没有字典(据我所知),所以一次完成这一切需要另一种格式来存储映射

要回答有关如何对多个词典条目执行此操作的问题,请执行以下操作:

因为R中没有字典,所以我们选择了下一个最好的东西:列表。列表条目有一个名称和一个对象(值、向量、任何真正的东西)。我们可以将条目的名称作为字典键,将值作为其翻译:

dict <- list(St = "Street",
             Rd = "Road",
             Ln = "Lane",
             Pl = "Place")

您可以使用函数
gsub
进行此操作
gsub(“Ln”,“Lane”,addresses)
其中
addresses
是一个以您的地址为字符串的向量,将所有出现的“Ln”替换为“Lane”。你可以用正则表达式来处理这个问题,但我认为这对你没什么帮助

所以你所要做的就是调用这个函数来替换你想做的所有替换,你就完成了。R没有字典(据我所知),所以一次完成这一切需要另一种格式来存储映射

要回答有关如何对多个词典条目执行此操作的问题,请执行以下操作:

因为R中没有字典,所以我们选择了下一个最好的东西:列表。列表条目有一个名称和一个对象(值、向量、任何真正的东西)。我们可以将条目的名称作为字典键,将值作为其翻译:

dict <- list(St = "Street",
             Rd = "Road",
             Ln = "Lane",
             Pl = "Place")

用标签(即,
\\bLn\\b
)环绕
Ln
,这样它就不会拾取属于更大单词的字母。多亏了你们两位。但是我如何对多个项目执行此操作,例如R中的dictionary?@ds_user查看我的编辑。使用标记(即,
\\bLn\\b
)环绕
Ln
),这样它就不会拾取属于更大单词一部分的字母多亏了你们两位。但是如何对多个项目执行此操作,例如R中的字典?@ds\u用户查看我的编辑。
for(i in 1:length(dict)){
  Adresses <- gsub(paste0("\\b", names(dict)[i], "\\b"), dict[[i]], Adresses)
}