library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.4     v dplyr   1.0.7
## v tidyr   1.1.3     v stringr 1.4.0
## v readr   2.0.1     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(haven)
css2019 <- read_dta("D:/course/CSS/CSS2019/css2019.dta")
#View(css2019)
css2019 <- css2019 %>% mutate(age = 2019-a1_1_a)
#css2019$age
css2019<-
  css2019 %>%
  mutate(agegroup = case_when(
    age <= 40                ~ "40岁以下",
    age  >40 & age <= 60 ~ "40-60",
    age  > 60                 ~ "60以上"
  ))
#css2019$agegroup
library(ggridges)
css2019 %>% 
  ggplot(aes(x = d4b1_6, y = agegroup, fill = agegroup)) +
  geom_density_ridges()
## Don't know how to automatically pick scale for object of type haven_labelled/vctrs_vctr/double. Defaulting to continuous.
## Picking joint bandwidth of 0.235
## Warning: Removed 3545 rows containing non-finite values (stat_density_ridges).

table(css2019$d4a)
## 
##    1    2 
## 6738 3544