【发布时间】:2020-06-05 08:52:07
【问题描述】:
我希望加入两个表。但是我希望加入的数据不完全匹配。加入 NFL 球员姓名。
以下数据集..
> dput(att75a)
structure(list(rusher_player_name = c("A.Ekeler", "A.Jones",
"A.Kamara", "A.Mattison", "A.Peterson", "B.Hill"), mean_epa = c(-0.110459963350783,
0.0334332018597805, -0.119488111742492, -0.155261835310445, -0.123485646124451,
-0.0689611296359916), success_rate = c(0.357664233576642, 0.40495867768595,
0.401129943502825, 0.283018867924528, 0.322727272727273, 0.35
), plays = c(137L, 242L, 177L, 106L, 220L, 80L)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -6L))
> dput(rb2019capa)
structure(list(rusher_player_name = c("Aaron Jones", "Adrian Peterson",
"Alexander Mattison", "Alvin Kamara", "Austin Ekeler", "Brian Hill"
), Team = c("Packers", "Redskins", "Vikings", "Saints", "Chargers",
"Falcons"), `Salary Cap Value` = c(695487, 1780000, 700545, 1050693,
646668, 645000), `Cash Spent` = c(645000, 2530000, 1317180, 807500,
645000, 645000)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-6L))
例如,我正在尝试在 Alexander Mattison 上加入 A.Mattison.. 等等..
我尝试了 stringdist 和fuzzyjoin,但无法解决我的问题..
请考虑...采用每个数据集的 head() 来压缩每个问题询问指南。原始数据集的长度为 51 obs。和 168 obs...这会影响连接的执行方式吗?
清理这些名称的最佳方法是什么?
感谢您的宝贵时间..
【问题讨论】:
-
将
Alexander Mattison转换为A.Mattison的代码可以完成这项工作吗? -
修改第二个df,将名字替换为第一个首字母。只要没有重复,就应该可以将其与第一个 df 完全结合。
-
谢谢,我会用字符串来试试这个
-
那么你尝试了什么?
-
在另一个帖子中(不应该重复发布)我被建议使用 sub..
sub("(.).*\\.(.*)", "\\1.\\2", rb2019capa$rusher_player_name).. 匹配名称后加入成功...我将在下面尝试答案我稍后会回到我的环境中......
标签: r string join data-cleaning stringdist