Ошибка в поиске в Интернете в R из Википедии - PullRequest
1 голос
/ 02 мая 2019

У меня возникли проблемы с очисткой веб-информации из Википедии и я получил следующее сообщение об ошибке:

Ошибка в if (length (p)> 1 & maxp * n! = Sum (unlist (nrows))& maxp * n! =:

пропущенное значение, где требуется TRUE / FALSE

Не знаете, как решить эту проблему, пожалуйста, помогите мне

url <- 'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies'
wiki <- read_html(url) %>% html_nodes('table') %>% html_table(fill = TRUE)

names(wiki[[1]])

Ошибка вывода:


Error in if (length(p) > 1 & maxp * n != sum(unlist(nrows)) & maxp * n !=  : 
  missing value where TRUE/FALSE needed

Ответы [ 2 ]

2 голосов
/ 02 мая 2019

Если вы хотите большую таблицу, вы можете использовать ее идентификатор. Идентификатор должен быть самым быстрым методом выбора для элемента

require(rvest)
r <- read_html("https://en.wikipedia.org/wiki/List_of_S%26P_500_companies") %>%
  html_nodes("#constituents") %>% 
  html_table()
print(r)
1 голос
/ 02 мая 2019

Проблема в том, что на этой веб-странице есть две таблицы, и вы должны указать, какую из них вы хотите очистить. Давайте предположим, что вы хотите первый, который вы могли бы сделать что-то вроде:

read_html(url) %>% 
  html_nodes('table') %>% 
  `[[`(1) %>% ## extract first table
  html_table(fill = TRUE) 
...