【发布时间】:2021-08-24 17:12:15
【问题描述】:
我最近从小部件运动中抓取了一些数据,用于我的梦幻足球联赛。一些球员的名字被记录为奇怪的符号。当我尝试使用 plyr::revalue 重命名玩家名称时,我收到一条错误消息,指出“x 中不存在这些值”,即使我直接从控制台或 View(f) 复制了它们。任何帮助将不胜感激。代码如下:
library(dplyr)
library(rvest)
library(plyr)
url <- "https://widgets.sports-reference.com/wg.fcgi?css=1&site=fb&url=%2Fen%2Fcomps%2F9%2Fstats%2FPremier-League-Stats&div=div_stats_standard"
f <- url %>%
xml2::read_html() %>%
rvest::html_nodes('table') %>%
html_table() %>%
.[[1]]
names(f)<-c("RK", "Player", "Nation", "Pos", "Squad" ,"Age", "Born" ,"MP", "Starts", "Min","90s", "Goals", "Assists", "Non-pen_goals",
"Pens_scored", "Pen_attempts", "Yellow_cards", "Red_cards", "G_P90","A_P90" ,"G+A_P90", "G-pen_P90", "G+A-pen_P90", "xG", "npxG",
"xA", "npxG+xA", "xG_P90", "xA_P90", "xG+xA_p90", "npxG_P90", "npxG+xA_P90", "Matches" )
f$Player<-revalue(f$Player, c("Ã\u0087aÄ\u009flar Söyüncü" = "Çaglar Söyüncü",
"Ã\u0089rik Lamela" = "Erik Lamela",
"İlkay GündoÄ\u009fan" = "Ilkay Gündogan",
"Å\u0081ukasz FabiaÅ\u0084ski" = "Lukasz Fabianski",
"Abdoulaye Doucouré" = "Abdoulaye Doucouré",
"Adama Traoré" = "Adama Traoré",
"Adrián" = "Alisson Ramses Becker",
"André Gomes‡" = "André Filipe Tavares Gomes",
"Antonio Rüdiger" = "Antonio Rüdiger",
"Ayoze Pérez" = "Ayoze Pérez",
"Bertrand Traoré" = "Bertrand Traoré",
"Cédric Soares‡" = "Cédric Soares",
"César Azpilicueta" = "César Azpilicueta",
"CaoimhÃn Kelleher" = "Caoimhin Kelleher",
"Cheikhou Kouyaté" = "Cheikhou Kouyaté",
"Davinson Sánchez" = "Davinson Sánchez",
"Davy Pröpper" = "Davy Pröpper",
"Emiliano MartÃnez" = "Emiliano Martínez",
"Fábio Silva" = "Fabio Silva",
"Fabian Schär" = "Fabian Schär",
"Federico Fernández" = "Federico Fernández",
"Fernando Marçal" = "Fernando Marçal",
"Ferrán Torres" = "Ferran Torres",
"Gylfi Sigurðsson" = "Gylfi Sigurdsson",
"Héctor BellerÃn" = "Héctor Bellerín",
"Hélder Costa" = "Hélder Wander Sousa de Azevedo e Costa",
"Jóhann Berg Guðmundsson"= "Johann Berg Gudmundsson",
"Jaïro Riedewald" = "Jairo Riedewald",
"James RodrÃguez" = "James Rodríguez",
"João Cancelo" = "João Pedro Cavaco Cancelo",
"João Moutinho" ="João Filipe Iria Santos Moutinho",
"João VirgÃnia" ="João Virgínia",
"Joël Matip" = "Joel Matip",
"Joël Veltman" = "Joël Veltman",
"José Izquierdo" = "José Izquierdo",
"Luka MilivojeviÄ\u0087" = "Luka Milivojevic",
"Martin Ã\u0098degaard" = "Martin Ødegaard",
"Martin Dúbravka" = "Martin Dubravka",
"MatÄ\u009bj Vydra" = "Matej Vydra",
"Mateo KovaÄ\u008diÄ\u0087" = "Mateo Kovacic",
"Miguel Almirón" = "Miguel Almirón",
"N'Golo Kanté" = "N'Golo Kanté",
"Nélson Semedo" = "Nélson Cabral Semedo",
"Naby Keïta" = "Naby Keita",
"Nathan Aké" = "Nathan Aké",
"Nemanja MatiÄ\u0087" = "Nemanja Matic",
"Nicolas Pépé" = "Nicolas Pépé",
"Pablo Hernández" = "Pablo Hernández",
"Pablo MarÃ" = "Pablo Marí",
"Pascal GroÃ\u009f" = "Pascal Groß",
"Pierre Højbjerg" = "Pierre-Emile Højbjerg",
"Raúl Jiménez" = "Raúl Jiménez",
"Rúben Dias" = "Rúben Santos Gato Alves Dias",
"Rúben Neves" = "Rúben Diogo da Silva Neves",
"Rúben Vinagre" = "Rúben Gonçalo da Silva Nascimento Vinagre",
"Rúnar Alex Rúnarsson" = "Rúnar Alex Rúnarsson",
"Rayan Aït Nouri" = "Rayan Ait Nouri",
"Robert Sánchez" = "Robert Sánchez",
"Romain Saïss" = "Romain Saïss",
"Rui PatrÃcio" = "Rui Pedro dos Santos Patrício",
"Séamus Coleman" = "Seamus Coleman",
"Saïd Benrahma" = "Saïd Benrahma",
"Sadio Mané" = "Sadio Mané",
"Sead Kolašinac" = "Sead Kolasinac",
"Sergio Reguilón" = "Sergio Reguilón",
"Thiago Alcántara" = "Thiago Alcántara do Nascimento",
"Tomáš SouÄ\u008dek" = "Tomas Soucek",
"Trézéguet" = "Mahmoud Ahmed Ibrahim Hassan",
"Victor Lindelöf" = "Victor Lindelöf",
"VladimÃr Coufal" = "Vladimir Coufal"
))
编辑
如果我只是尝试重新评估名字,我会收到此错误消息:'x 中不存在以下from 值:ÃaÄlar Söyüncü
警告信息:
无法将 'ÃaÄlar Söyüncü' 转换为本机编码'
f$Player<-revalue(f$Player, c("Ã\u0087aÄ\u009flar Söyüncü" = "Çaglar Söyüncü"))
【问题讨论】:
-
这不是答案,但我认为您想在
dplyr之前加载plyr,而不是之后。如果它仍然存在问题,我不知道(我过去见过一些)。这可能不是您的问题的原因,这只是我注意到的。 -
谢谢史蒂夫。现在完成了,但同样的问题
-
是的,我没想到它会解决这个问题,只是以后可能会避免其他问题。