You can use geom_area() with position = "stack" in order to stack the areas on top of each other. This requires a few preparation steps to the data.
This defines your vectors as columns in a tibble. Note that (following daniellga) I choose omega_Csuch that the three variables add to 2, since omega_B is sometimes larger than 1.
library(tidyverse)
df <- tibble(omega_S = c(0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1 ,0.1),
omega_B = c(1.12926243 ,1.11859126 ,1.10754331 ,1.09610527, 1.08426335 ,1.07200332, 1.05931039, 1.04616928, 1.03256418, 1.01847869, 1.00389586 ,0.98879812, 0.97316729 ,0.95698455, 0.94023042, 0.92288471, 0.90492654 ,0.88633429, 0.86708556 ,0.84715717 ,0.82652514 ,0.80516460 ,0.78304984, 0.76015424, 0.73645021, 0.71190921 ,0.68650169, 0.66019706, 0.63296364, 0.60476862, 0.57557807, 0.54535683, 0.51406850, 0.48167542, 0.44813856 ,0.41341755, 0.37747057, 0.34025433, 0.30172403 ,0.26183325,
0.22053397, 0.17777645, 0.13350921 ,0.08767892, 0.04023042),
omega_C = 2 - omega_B - omega_S,
age = 1:45)
In order to plot the three variables with ggplot, we need to put the data in a different shape. This is a typical step for plots with ggplot(): Every property of the plot must depend on a variable, i.e., a column, in your data frame. Since you want to have different colour for omega_C, omega_B, and omega_S, you need a column that tells for each data point, to which of the three variables it belongs. This can be done with pivot_longer() from the tidyverse package, which we use to write those values in a column type. In addition, we must convert that column into a factor in order to plot the three areas in the expected order.
plot_data <- pivot_longer(df, cols = -"age",
names_to = "type") %>%
mutate(type = factor(type, levels = paste0("omega_", c("C", "B", "S"))))
The plot is then created as follows:
ggplot(plot_data, aes(x = age, y = value, fill = type)) +
geom_area(position = "stack")

Note that geom_area() is only added once. Because type is mapped on fill, an area is drawn for every value of type. Using position = "stack" tells ggplot to draw the areas on top of each other.