我想使用维基百科上的数据创建一个图表,我从找到的表格中创建了一个数据框。它包含两列 - 啤酒的风格和苦味值范围(IBU),如“20-50”。这两个都是字符型的,所以我不能从中制作出有意义的图表。我设法将IBU列更改为两个分开的数字列(最小值和最大值),但它在我的第一个数据框中创建了第二个数据框,尝试寻找类似的案例,但我找不到,现在我陷入了困境,不知道下一步该怎么做 :(对于粘贴这么多代码,请谅解,我只是想让别人读取数据并查看其结构。
library(xml2)
library(rvest)
library(ggplot2)
library(tidyr)
file_html <- read_html(
"https://pl.wikipedia.org/wiki/International_Bittering_Units",
encoding = "UTF-8")
table_html <- html_node(file_html, "#mw-content-text > div > table")
table_IBU <- html_table(table_html, fill = TRUE)
table_IBU$IBU2 <- str_replace(table_IBU$`Stopień IBU`, "\\+", "")
table_IBU$IBU3 <- tidyr::separate(table_IBU, IBU2, into = c("min", "max"), sep = " – ")
table_IBU <- subset(table_IBU, select = -c(IBU2,
`Stopień IBU`,
`Gatunek piwa`))
table_IBU$IBU3$min2 <- as.numeric(table_IBU$IBU3$min)
table_IBU$IBU3$max2 <- as.numeric(table_IBU$IBU3$max)
#graph that I can come up with on my own
IBUgraph <- ggplot(table_IBU$IBU3, aes(reorder(`Gatunek piwa`, + max2),
max2)) +
geom_point(width = 0.5, color = "darkolivegreen",
fill = "darkseagreen4") +
theme(text=element_text(size = 9))
IBUgraph = IBUgraph +
labs(y = "Międzynarodowe Jednostki Goryczy (IBU)",
x = "Gatunek",
title = "Skala IBU - International Bitterness Units,
czyli międzynarodowe jednostki goryczy")
IBUgraph <- IBUgraph + theme(axis.text.x=element_text(angle=45, hjust=1.1))
IBUgraph
最终我想使用ggplot()创建一个图表,其中x轴为啤酒的类型,每种类型都展示最小值和最大值两个点。
separate()
函数将其解析为IBU3$min,max,但您不喜欢它作为子数据框架/命名列表的输出格式。这是tidyr::separate()
,还是其他软件包?" - smci