Вы можете использовать cut
для группировки по диапазону.Подробнее об этом здесь .Ниже приведен пример того, как построить ваши данные, используя ggplot2
и dplyr
.Я сгруппировался по 10 годам.
library(ggplot2)
library(dplyr)
df <- tibble::tribble(
~id, ~age, ~sub.types, ~inter,
"TCGA-A8-A07O", 60L, "Infiltrating duct carcinoma, NOS", 6L,
"TCGA-A7-A0CJ", 65L, "Infiltrating duct carcinoma, NOS", 6L,
"TCGA-A7-A0CH", 88L, "Infiltrating duct carcinoma, NOS", 8L,
"TCGA-A7-A0CG", 86L, "Infiltrating duct and lobular carcinoma", 8L,
"TCGA-A7-A0CE", 66L, "Infiltrating duct carcinoma, NOS", 6L,
"TCGA-A7-A0CD", 75L, "Infiltrating duct carcinoma, NOS", 7L
)
df %>%
group_by(age.group = cut(age, breaks= seq(0, 100, by = 10))) %>%
ggplot() +
geom_bar(aes(age.group, fill = sub.types)) +
theme_classic()