我有一组来自twitter API的社交媒体数据,其中还包括人们的自我报告位置。但是,位置字符串并非默认为用于分类的标准格式,并且有时存在“巨魔”值。这是一个例子
a1 = data.frame(x=c(1:4),y=c("181 Metro Drive San Francisco", "Wall Street New York", "Austin, TX", "The Moon"))
a1
我的计划是在https://www.kaggle.com/max-mind/world-cities-database处获取一个包含世界所有城市名称的CSV文件,并将其作为矢量导入R,这是一个小例子
a2 = c("New York", "Washington", "Austin")
a2
[我想做的是编写一个基于a2交叉引用a1的R函数,将a1中没有出现在a2上的所有字符串替换为NA,并用该精确值替换出现在a2上的所有字符串。字符串值。例如,假设我们的函数是f,则函数的输出如下所示
x = data.frame(x=c(1:4),c("San Francisco", "New York", "Austin", NA))
x
我可以为此在R中编写一个函数,还是为此任务构建任何现有的R软件包?谢谢你的帮助
我们可以将所有城市名称粘贴为图案,然后使用str_extract
提取它。
library(stringr)
str_extract(a1, str_c(a2, collapse = "|"))
#[1] "San Francisco" "New York" "Austin" NA
数据
a2 = c("New York", "Washington", "Austin", "San Francisco")
a1 = c("181 Metro Drive San Francisco", "Wall Street New York",
"Austin, TX", "The Moon")