r - 如何根据名称列表搜索字符串列表并删除所有额外字符?
问题描述
我有一个包含标题和其他信息列表的数据框,以及相应的名称列表。我想做的是从标题中提取名称并将它们添加到最后的新列(“玩家”)中。我已经用尽了我公认的小 R 知识,并且找不到一种方法来使用它相应的名称列表。
names <- c("Mookie Betts", "Cody Bellinger", "Mike Trout", "Ronald Acuna")
titles <- c("asdfasdf Mike Trout asdfasd", "jashfjasf Mookie Betts hasjdfhasj", "asdfuiojhuo Ronald Acuna ashdfj", "uiwqtruhjhb Cody Bellinger asdfasdf", "asdhfjaf Ronald Acuna ahsdfj", "hajsdf Mookie Betts ahsdfj")
我不知道如何只提取名称。每当我认为我已经解决了它时,它就会返回整个标题字符串。
解决方案
您可以names
像这样创建一个正则表达式:
patterns <- paste0(names, collapse = "|")
并使用stringr
包从中提取这些名称titles
(忽略评论中要求的大小写):
library(stringr)
str_match(titles, regex(patterns, ignore_case = TRUE))
# [,1]
# [1,] "Mike Trout"
# [2,] "Mookie Betts"
# [3,] "Ronald Acuna"
# [4,] "Cody Bellinger"
# [5,] "Ronald Acuna"
# [6,] "Mookie Betts"
推荐阅读
- ruby - 初学者问题:ruby中字符串前面的加号有什么作用?
- java - 斯坦福 NPL 在 Spark (Scala) 应用程序中运行到 Java 堆空间 (java.lang.OutOfMemoryError)
- java - java swing获取或设置新JButton的唯一ID,同时在for循环上创建它
- unity3d - Unity 物理场景从主场景复制所有对撞机
- javascript - 如何增加本地浏览器存储空间?
- excel - 需要一个 Excel 公式来返回给定单元格的字符数,如果单元格包含空格,请使用变量
- hibernate - HQL - EntityManager.createQuery 在 CaseInsensitiveComparator.compare 上引发 NPE
- ios - 如何批量更新查询结果
- react-native - Expo React Native:代码拆分不兼容的 Web 包
- java - 如何在方法中模拟本地数组列表