У меня были проблемы при изменении этого рабочего скрипта, который собирает данные из фан-графов, на другую страницу на том же сайте для данных второстепенной лиги.Я изменил URL, удалил раздел о замене процентов, потому что они не являются проблемой на моей конкретной странице и .....
это оригинальный скрипт
suppressMessages(library(dplyr))
suppressMessages(library(rvest))
### Load data from webpage
url <- "https://www.fangraphs.com/leaders.aspx?pos=all&stats=bat&lg=all&qual=30&type=2&season=2018&month=0&season1=2018&ind=0&team=0&rost=0&age=0&filter=&players=0&page=1_1000"
l1 <- read_html(url)
l1 <- html_nodes(l1, 'table')
### Extract table from html and remove 'bad' rows
fangraphs <- html_table(l1, fill = TRUE)[[12]]
fangraphs <- fangraphs[-c(1,3),]
# Extract column names
columnNames <- as.list(fangraphs[1,])
# Take care of symbols in column names
columnNames <- gsub("%", ".p", columnNames)
columnNames <- gsub("/", "per", columnNames)
# Rename data frame and remove row with column names
colnames(fangraphs) <- columnNames
fangraphs <- fangraphs[-1,]
fangraphs[] <- sapply(fangraphs, function(x) gsub(" %","",x))
fangraphs[4:19] <- sapply(fangraphs[4:19],as.numeric)
это мой отредактированныйскрипт, чтобы соответствовать этому URL (https://www.fangraphs.com/minorleaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=c,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,30,46,45,44,32,23&season=2018&team=0&players=&page=1_3000)
suppressMessages(library(dplyr))
suppressMessages(library(rvest))
### Load data from webpage
url <- "https://www.fangraphs.com/minorleaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=c,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,30,46,45,44,32,23&season=2018&team=0&players=&page=1_3000"
l1 <- read_html(url)
l1 <- html_nodes(l1, 'table')
### Extract table from html and remove 'bad' rows
fangraphs <- html_table(l1, fill = TRUE)[[12]]
fangraphs <- fangraphs[-c(1,3),]
# Extract column names
columnNames <- as.list(fangraphs[1,])
# Rename data frame and remove row with column names
colnames(fangraphs) <- columnNames
fangraphs <- fangraphs[-1,]
fangraphs[3:26] <- sapply(fangraphs[3:26],as.numeric)
Я получаю эту ошибку возвращается
> suppressMessages(library(dplyr))
> suppressMessages(library(rvest))
>
> ### Load data from webpage
>
> url <- "https://www.fangraphs.com/minorleaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=c,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,30,46,45,44,32,23&season=2018&team=0&players=&page=1_3000"
>
> l1 <- read_html(url)
> l1 <- html_nodes(l1, 'table')
>
> ### Extract table from html and remove 'bad' rows
> fangraphs <- html_table(l1, fill = TRUE)[[12]]
Error in html_table(l1, fill = TRUE)[[12]] : subscript out of bounds
> fangraphs <- fangraphs[-c(1,3),]
Error: object 'fangraphs' not found
>
> # Extract column names
> columnNames <- as.list(fangraphs[1,])
Error in as.list(fangraphs[1, ]) : object 'fangraphs' not found
>
> # Rename data frame and remove row with column names
> colnames(fangraphs) <- columnNames
Error in colnames(fangraphs) <- columnNames :
object 'fangraphs' not found
> fangraphs <- fangraphs[-1,]
Error: object 'fangraphs' not found
>
> fangraphs[3:26] <- sapply(fangraphs[3:26],as.numeric)
Error in lapply(X = X, FUN = FUN, ...) : object 'fangraphs' not found
, и это не становится лучше, когда я изменил код в html_nodes из таблицына # MinorBoard1_dg1_ctl00 .rgHeader, .grid_line_regular ', который я подобрал с помощью гаджета селектора (хотя сюда входят и имена каждого столбца.
Один последний отдельный вопрос: нужен ли мне код для исправления столбцов, которыеиметь «.», прежде чем они будут преобразованы в числовые столбцы (здесь я говорю о статистике ISO, BABIP и AVG.