Я пытаюсь отсканировать несколько таблиц для , который управляет в Швеции 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
Есть мысли? Если бы это были только эти двое, я бы сделал это вручную, но, поскольку я собираюсь провести еще несколько лет, я подумал, что это хорошая возможность научиться решать эту проблему. :)