Импортировать таблицу из url с r, но столбцы numeri c являются символами - PullRequest
0 голосов
/ 19 июня 2020

У меня есть следующий код:

url <- "https://lebensmittel-naehrstoffe.de/calciumhaltige-lebensmittel/"
page <- read_html(url) #Creates an html document from URL
Ca <- html_table(page, fill = TRUE, dec = ",") #Parses tables into data frames
Ca <- data.frame(Ca)

Но мой последний столбец моего data.frame Ca [, 4] состоит из значений, содержащих "." и "," - следовательно, это немецкий талб, de c - это ",", но в R это всегда символ. Я уже пробовал использовать gsub и as.numeri c, но всегда терпел неудачу. Пожалуйста, обратите внимание: я уже поставил dec = ","

Может кто-нибудь мне помочь? Если возможно, это должно быть решение запустить его на большом количестве data.frames (или html импорт или что-то еще), потому что у меня много таких таблиц ...

Большое спасибо!

1 Ответ

2 голосов
/ 19 июня 2020

Вы можете использовать readr::parse_number:

Ca <- html_table(page, fill = TRUE, dec = ",")[[1]]
Ca$`Calciumgehalt in mg` <- readr::parse_number(Ca$`Calciumgehalt in mg`, locale = locale(decimal_mark = ",", grouping_mark = "."))
str(Ca)

# 'data.frame': 82 obs. of  4 variables:
# $ Lebensmittel       : chr  "Basilikum, getrocknet" "Majoran, getrocknet" "Thymian, getrocknet" "Selleriesamen" ...
# $ Kategorie          : chr  "Gewürze" "Gewürze" "Gewürze" "Gewürze" ...
# $ Mengenangabe       : chr  "je 100 Gramm" "je 100 Gramm" "je 100 Gramm" "je 100 Gramm" ...
# $ Calciumgehalt.in.mg: num  2240 1990 1890 1767 1597 ...
...