0
안녕하세요, 저는 R에서 병합하는 데 도움이 필요합니다. 여기에 설명 할 코드의 재현 가능한 샘플이 있습니다.R의 특정 키에 데이터 프레임 병합/별표 스트라이핑
내가 겪고있는 내 문제는 고정 관념에있는 특정 사람들이 famers의 홀이고 그 때문에 그들의 이름에 별표가 있기 때문입니다. 나는 그것들을 초안 데이터베이스에 가입시키고 초안을 잡을 수 있도록 청소하고 싶습니다. 순서대로 (플레이어 = 목록 ("타리크 압둘 와하 드", "샤리프 앰 두르 라힘을"
오류 : 나는 코드 이렇게하면 내가 나에게주는 오류로 실행 해요 구현되지 않은 타입 ' orderVector1 '
너희들은 내가 제대로 플레이어 키에있는 두 개의 데이터 프레임에 가입? 감사를 사전에 순서대로 열에서 별표를 제거 가야하는 것이 좋습니다합니까.
코드'에서 '목록 :
library(htmltab)
library(sqldf)
library(plyr)
library(readr)
stats0 <- ""
draftbank0 <- ""
for (i in 20003:2017){
url <- paste0("http://www.basketball-reference.com/leagues/NBA_",i,"_advanced.html")
stats <- htmltab(doc = url, which = 1, header = 1, stringsasfactors = FALSE)
stats$year <- i
stats0 <- rbind(stats0,stats)
stats0[rowSums(is.na(stats0)) != ncol(stats0),]
}
colnames(stats0) <- c("Rank",
"Player",
"Pos",
"Age",
"Tm",
"G",
"MP",
"PER",
"TSp",
"ThreePAr",
"FTr",
"ORBp",
"DRBp",
"TRBp",
"ASTp",
"STLp",
"BLKp",
"TOVp",
"USGp",
"Null", #comment out null if needed
"OWS",
"DWS",
"WS",
"WS48",
"Null2", #comment out null if needed
"OBPM",
"DBPM",
"BPM",
"VORP",
"Year")
fixedstats <- sqldf("SELECT Rank, Player, Pos, Age, Tm, G, MP, PER, TSp, ThreePAr, FTr, ORBp, DRBp, TRBp, ASTp, STLp, BLKp, TOVp,
USGp, OWS, DWS, WS, WS48, OBPM, DBPM, BPM, VORP, Year FROM stats0 WHERE player != 'Player'")
fixedstats <- fixedstats[-1,]
for (i in 1980:2016){
url2 <- paste0("http://www.draftexpress.com/nba-mock-history/",i,"/all/all/")
draftbank <- htmltab(doc = url2, which = 1, header = 1, stringsasfactors = FALSE)
draftbank0 <- rbind(draftbank0,draftbank)
}
colnames(draftbank0) <- c("Draft_Year",
"Pick",
"Null1",
"Player",
"Null2",
"Position",
"Age",
"Height",
"Weight",
"Wingspan",
"Points",
"Rebounds",
"Assists",
"PER",
"Null3",
"League",
"EWA")
draftbankfinal <- sqldf("SELECT Player, Position, Age, Height, Wingspan, Draft_Year FROM draftbank0")
draftbankfinal <- draftbank0[-1,]
#Multiple drafts appendix getting rid of guys with similar names
draftbankfinal<-draftbankfinal[!(draftbankfinal$Player=="Corey Brewer" & draftbankfinal$Draft_Year==1998),]
draftbankfinal<-draftbankfinal[!(draftbankfinal$Player=="Patrick Ewing" & draftbankfinal$Draft_Year==1985),]
draftbankfinal<-draftbankfinal[!(draftbankfinal$Player=="Charles Smith" & draftbankfinal$Draft_Year==1988),]
draftbankfinal<-draftbankfinal[!(draftbankfinal$Player=="Ray McCallum" & draftbankfinal$Draft_Year==1983),]
draftbankfinal<-draftbankfinal[!(draftbankfinal$Player=="James Anderson" & draftbankfinal$Draft_Year==1985),]
draftbankfinal<-draftbankfinal[!(draftbankfinal$Player=="Ken Johnson" & draftbankfinal$Draft_Year==1985),]
draftbankfinal<-draftbankfinal[!(draftbankfinal$Player=="Dee Brown" & draftbankfinal$Draft_Year==1990),]
fixedstats$Player <- lapply(fixedstats$Player, sub, pattern = "[*]", replacement = "")
fixedstats$Player <- lapply(fixedstats$Player, sub, pattern = "[']", replacement = "")
fixedstats$Player <- ifelse(fixedstats$Player == 'Jermaine ONeal', 'Jermaine O\'Neal', fixedstats$Player)
fixedstats$Player <- ifelse(fixedstats$Player == 'J.J Obrien', 'J.J O\'Brien', fixedstats$Player)
fixedstats$Player <- ifelse(fixedstats$Player == 'Johnny OBryant', 'Johnny O\'Bryant', fixedstats$Player)
fixedstats$Player <- ifelse(fixedstats$Player == 'Patrick OBryant', 'Patrick O\'Bryant', fixedstats$Player)
fixedstats$Player <- ifelse(fixedstats$Player == 'Shaquille ONeal', 'Shaquille O\'Neal', fixedstats$Player)
fixedstats$Player <- as.vector(fixedstats$Player)
draftbankfinal$Player <- as.vector(draftbankfinal$Player)
df <- merge(x = fixedstats, y = draftbankfinal, by = "Player", all.x = TRUE)
df2 <- df[c(1,3:5,22,28:29,32:35)]