Ошибка при извлечении из Википедии: некоторые работают, некоторые нет, хотя тот же тип html -таблицы - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь отсканировать несколько таблиц для , который управляет в Швеции sh муниципальных советов для использования в моей магистерской диссертации по политологии. Однако два региона доставляют мне немало хлопот, и я не могу понять, почему. Они отсортированы на странице википедии под регионами как вторая таблица, первая таблица - региональный совет.

Остальные 19 регионов работают нормально, только некоторые из них доставляют мне беспокойство, но эти два дают похожий код ошибки.

library(rvest)
library(tidyverse)
url <- "https://sv.wikipedia.org/wiki/Lista_över_kommun-_och_landstingsstyren_i_Sverige_2018-2022"

#skåne
df <- read_html(url) %>% 
        html_nodes('table') %>% 
        `[[`(21) %>% 
        html_table(fill = TRUE)
majorities <- rbind(majorities, df)

выдает ошибку

  missing value where TRUE/FALSE needed
In addition: Warning message:
In lapply(ncols, as.integer) : NAs introduced by coercion

, а

#Värmland
df <- read_html(url) %>% 
        html_nodes('table') %>% 
        `[[`(29) %>% 
        html_table(header = TRUE,fill = TRUE)
majorities <- rbind(majorities, df)

возвращает

Error in if (length(p) > 1 & maxp * n != sum(unlist(nrows)) & maxp * n !=  : 
  missing value where TRUE/FALSE needed
In addition: Warning messages:
1: In lapply(ncols, as.integer) : NAs introduced by coercion
2: In lapply(ncols, as.integer) : NAs introduced by coercion
3: In lapply(ncols, as.integer) : NAs introduced by coercion

Первый, Скон , я думал, это потому, что у него неправильная таблица, , как говорит этот поток , но они, похоже, получают ошибочный фрейм данных, а я даже этого не понимаю. Во-вторых, Värmland , я в полной растерянности из-за того, что кажется ошибкой, поскольку для меня она выглядит точно так же, как таблицы, которые я смог очистить до и после нее, например Blekinge

#Blekinge
df <- read_html(url) %>% 
        html_nodes('table') %>% 
        `[[`(2) %>% 
        html_table(fill = TRUE)
majorities <- df

Есть мысли? Если бы это были только эти двое, я бы сделал это вручную, но, поскольку я собираюсь провести еще несколько лет, я подумал, что это хорошая возможность научиться решать эту проблему. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...