Я пытаюсь получить десятичные координаты из таблицы в Википедии. Приведенный ниже код помогает мне получить столбец для широты и столбец для долготы, но мне не удается на последнем этапе преобразования столбца longitude
из символа в число c. Напротив, столбец latitude
преобразуется нормально.
Кажется, что проблема заключается в «скрытом» символе в конце каждой строки в столбце longitude
(str_length
«считает» один дополнительный символ, чем виден в столбце значений).
Это проблема кодирования? Как преобразовать столбец longitude
в число c?
Этот код, кажется, дает мне большую часть пути:
# load packages
library(xml2)
library(rvest)
library(dplyr)
library(stringr)
library(tidyr)
library(readr)
# get coordinates data
webpage_url <- "https://en.wikipedia.org/wiki/List_of_Premier_League_stadiums"
webpage <- xml2::read_html(webpage_url)
# put web data into dataframe
df1 <- rvest::html_table(webpage, fill = TRUE)[[1]]
df2 <- df1 %>%
# split different coordinate formats
mutate(temp_Coordinates = str_split(string = Coordinates, pattern = " / ")) %>%
# one coordinate format per row
unnest(cols = temp_Coordinates) %>%
group_by(Stadium) %>%
# keep only 3rd row per stadium, i.e. decimal format of coordinates
filter(row_number() == 3) %>%
ungroup() %>%
# seperate coordinate pairs into individual columns for latitude and longitude
separate(temp_Coordinates, c("latitude","longitude"), sep = " ") %>%
# remove semi-colon from end of latitude string
mutate(latitude = str_replace(latitude, ";", ""))
Проблема, похоже, заключается в этом последнем шаге, преобразовании longitude
из символа в число c (в результате вместо этого в столбце NA):
df3 <- df2 %>%
# convert latitude from character to numeric
mutate(latitude = as.numeric(latitude)) %>%
# convert longitude from character to numeric
mutate(longitude = as.numeric(longitude))
Ручное назначение значения для копирования и вставки из longitude
возвращает эту ошибку (обратите внимание на появление странного символа вопросительного знака при вставке строки в консоль). );
x <- "-2.96083�" Ошибка: EOF при чтении символа MBCS в строке 2 </p>
Кто-нибудь знает, как изменить формат, чтобы я мог преобразовать в число c?
Спасибо!