使用 r 从 url 导入 table - 但数字列是字符

Import table from url with r - but numeric columns are characters

我有以下代码:

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] 的最后一列包含包含“.”的值。和“,” - 因此它是德语 talbe dec 是“,”,但在 R 中它始终是一个字符。我已经尝试过使用 gsub 和 as.numeric,但总是失败。请注意:我已经输入了 dec=","

有人可以帮助我吗?如果可能的话,它应该是 运行 它在很多 data.frame 上的解决方案(或 html 导入或其他任何东西),因为我有很多这样的表...

非常感谢!

您可以使用 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 ...