Я пытаюсь подмножить свои данные в ggplot на основе двух переменных символов: модели и буквы. Я хочу подмножество «m1», у которого есть буква «а». В исходных данных у меня есть несколько строк, у которых есть «m1» и «a», но ниже приведен лишь небольшой воспроизводимый пример. Может ли кто-нибудь подсказать мне, как подмножить его внутри команды ggplot?
model value letter
m1 5 a
m2 11 b
m3 2 c
m1 4 d
m2 22 e
m3 6 f
structure(list(model = structure(c("m1", "m2", "m3", "m1", "m2",
"m3"), format.stata = "%9s"), value = structure(c(5, 11, 2, 4,
22, 6), format.stata = "%9.0g"), letter = structure(c("a", "b",
"c", "d", "e", "f"), format.stata = "%9s")), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
Мы могли бы создать группу по filter
, и это можно использовать в качестве входных данных для ggplot
library(dplyr)
library(ggplot2)
df1 %>%
group_by(model) %>%
filter('a' %in% letter) %>%
ggplot(aes(x = letter, y = value)) +
geom_col()
Или, если это просто «m1» и «a», сделайте filter
сразу
df1 %>%
filter(model == 'm1', letter == 'a') %>%
ggplot(aes(x = letter, y = value)) +
geom_col()
Это работает?
ggplot(subset(df,model=='m1' & letter=='a'),aes(x=letter,y=value))+
geom_point()
Объяснение:
В ggplot2
аргумент data
позволяет использовать другие функции, такие как subset()
.