ReadMe

This document includes additional information and analysis code for the manuscript “Life Events and Personality Trait Change: A Coordinated Data Analysis”.

Tabs
To make the document easier to read, we use tabs. You find tabs in gray in many places, where you can choose between different information (e.g., tables or figures for different event characteristics). Note: Sometimes there are several levels of tabs, so for example, on the first level you decide whether you want to see tables or graphics and on the next level you choose an event characteristic.

Analysis Code
The document includes all R code used to create the graphs and tables. As some of the main analyses were tim comsuming the analysis code for these analyses is not included in this document but uploaded as separate scripts to OSF. The code to create the tables and plots is hidden by default to enhance readability. If you want to see the code, simply click on the respective CODE button on the right hand side just above the figure or table—you will then see the associated codechunk. If you want to show all codechunks by default, click CODE > Show all Code at the very top of the document.

Preregistration
The coordinated data analysis was preregistered at https://osf.io/f4cbd?view_only=bde5a94b7eee40439f44c9f9f5a6b455. Deviations from this preregistration are summarized in the following table:

deviations <- data.frame(
  `Preregistered Plan` = c("..."), 
  "Deviation" = c("..."), 
  "Reason" = c("...")
)

kable(deviations
      , caption="**Deviations From the Preregistration**"
      , escape=FALSE
      , label = NA
      , col.names = c("Preregistered plan", "Deviation", "Reason")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), 
                fixed_thead = T, full_width = TRUE, position="left")
Deviations From the Preregistration
Preregistered plan Deviation Reason

Section 1: Descriptive Statistics

Sample Sizes for Different Life Events

Number of Participants

parti <- as.data.frame(cbind(
  rbind(
    relbeg_hilda %>% filter(relbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    relbeg_hilda %>% filter(relbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_hilda %>% filter(marriage_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_hilda %>% filter(marriage_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    child_hilda %>% filter(child_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    child_hilda %>% filter(child_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_hilda %>% filter(separat_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_hilda %>% filter(separat_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_hilda %>% filter(divor_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_hilda %>% filter(divor_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    widow_hilda %>% filter(widow_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    widow_hilda %>% filter(widow_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    gradu_hilda %>% filter(gradu_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    gradu_hilda %>% filter(gradu_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    jobbeg_hilda %>% filter(jobbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    jobbeg_hilda %>% filter(jobbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_hilda %>% filter(unemploy_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_hilda %>% filter(unemploy_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    retire_hilda %>% filter(retire_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    retire_hilda %>% filter(retire_control == 0) %>% pull(ID_pers) %>% unique() %>% length()), 
    rbind(
     relbeg_hrs %>% filter(relbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    relbeg_hrs %>% filter(relbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_hrs %>% filter(marriage_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_hrs %>% filter(marriage_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    child_hrs %>% filter(child_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    child_hrs %>% filter(child_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_hrs %>% filter(separat_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_hrs %>% filter(separat_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_hrs %>% filter(divor_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_hrs %>% filter(divor_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    widow_hrs %>% filter(widow_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    widow_hrs %>% filter(widow_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    NA, 
    NA,
    jobbeg_hrs %>% filter(jobbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    jobbeg_hrs %>% filter(jobbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_hrs %>% filter(unemploy_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_hrs %>% filter(unemploy_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    retire_hrs %>% filter(retire_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    retire_hrs %>% filter(retire_control == 0) %>% pull(ID_pers) %>% unique() %>% length()), 
    rbind(
          relbeg_liss %>% filter(relbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    relbeg_liss %>% filter(relbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_liss %>% filter(marriage_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_liss %>% filter(marriage_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    child_liss %>% filter(child_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    child_liss %>% filter(child_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_liss %>% filter(separat_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_liss %>% filter(separat_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_liss %>% filter(divor_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_liss %>% filter(divor_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    widow_liss %>% filter(widow_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    widow_liss %>% filter(widow_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    gradu_liss %>% filter(gradu_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    gradu_liss %>% filter(gradu_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    jobbeg_liss %>% filter(jobbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    jobbeg_liss %>% filter(jobbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_liss %>% filter(unemploy_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_liss %>% filter(unemploy_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    retire_liss %>% filter(retire_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    retire_liss %>% filter(retire_control == 0) %>% pull(ID_pers) %>% unique() %>% length()), 
    rbind(
          relbeg_midus %>% filter(relbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    relbeg_midus %>% filter(relbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_midus %>% filter(marriage_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_midus %>% filter(marriage_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    child_midus %>% filter(child_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    child_midus %>% filter(child_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    NA, 
    NA,
    divor_midus %>% filter(divor_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_midus %>% filter(divor_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    widow_midus %>% filter(widow_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    widow_midus %>% filter(widow_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    NA, 
    NA, 
    NA, 
    NA,
    NA,
    NA,
    retire_midus %>% filter(retire_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    retire_midus %>% filter(retire_control == 0) %>% pull(ID_pers) %>% unique() %>% length()), 
    rbind(
       relbeg_nlsy %>% filter(relbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    relbeg_nlsy %>% filter(relbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_nlsy %>% filter(marriage_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_nlsy %>% filter(marriage_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    child_nlsy %>% filter(child_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    child_nlsy %>% filter(child_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_nlsy %>% filter(separat_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_nlsy %>% filter(separat_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_nlsy %>% filter(divor_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_nlsy %>% filter(divor_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    NA, 
    NA,
    gradu_nlsy %>% filter(gradu_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    gradu_nlsy %>% filter(gradu_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    NA, 
    NA,
    unemploy_nlsy %>% filter(unemploy_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_nlsy %>% filter(unemploy_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    NA, 
    NA), 
    rbind(
      relbeg_pair %>% filter(relbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    relbeg_pair %>% filter(relbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_pair %>% filter(marriage_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_pair %>% filter(marriage_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    child_pair %>% filter(child_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    child_pair %>% filter(child_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_pair %>% filter(separat_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_pair %>% filter(separat_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_pair %>% filter(divor_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_pair %>% filter(divor_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    NA, 
    NA,
    gradu_pair %>% filter(gradu_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    gradu_pair %>% filter(gradu_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    jobbeg_pair %>% filter(jobbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    jobbeg_pair %>% filter(jobbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_pair %>% filter(unemploy_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_pair %>% filter(unemploy_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
   NA, 
   NA), 
    rbind(
      relbeg_soep %>% filter(relbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    relbeg_soep %>% filter(relbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_soep %>% filter(marriage_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    marriage_soep %>% filter(marriage_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    child_soep %>% filter(child_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    child_soep %>% filter(child_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_soep %>% filter(separat_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    separat_soep %>% filter(separat_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_soep %>% filter(divor_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    divor_soep %>% filter(divor_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    widow_soep %>% filter(widow_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    widow_soep %>% filter(widow_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    gradu_soep %>% filter(gradu_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    gradu_soep %>% filter(gradu_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    jobbeg_soep %>% filter(jobbeg_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    jobbeg_soep %>% filter(jobbeg_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_soep %>% filter(unemploy_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    unemploy_soep %>% filter(unemploy_control == 0) %>% pull(ID_pers) %>% unique() %>% length(),
    retire_soep %>% filter(retire_control == 1) %>% pull(ID_pers) %>% unique() %>% length(),
    retire_soep %>% filter(retire_control == 0) %>% pull(ID_pers) %>% unique() %>% length())
))

names(parti) <- c("HILDA", "HRS", "LISS", "MIDUS", "NLSY", "PAIRFAM", "SOEP")
parti$Total <- rowSums(parti, na.rm = TRUE)

parti$Group <- rep(c("Event group", "Control group"), 10)

parti <- select(parti, Group, HILDA, HRS, LISS, MIDUS, NLSY, PAIRFAM, SOEP, Total)

kable(parti
      , caption="**Sample size across different life events and panel studies**"
      , escape=FALSE
      , label = NA
      , digits = 3) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  pack_rows(index = c("New relationship" = 2, "Marriage" = 2, "Childbirth" = 2, 
                      "Separation" = 2, "Divorce" = 2,  "Widowhood" = 2,
                      "Graduation" = 2, "New employment" = 2, 
                      "Unemployment" = 2, "Retirement" = 2))
Sample size across different life events and panel studies
Group HILDA HRS LISS MIDUS NLSY PAIRFAM SOEP Total
New relationship
Event group 748 597 1533 178 1521 3204 8588 16369
Control group 33753 23249 14949 6274 7149 9194 85319 179887
Marriage
Event group 3146 783 1056 321 2440 1145 3545 12436
Control group 31355 23063 15426 6131 6230 11253 90362 183820
Childbirth
Event group 4136 1599 818 400 3554 1584 4328 16419
Control group 30365 22247 15664 6052 5116 10814 89579 179837
Separation
Event group 4032 871 185 522 2723 1292 9625
Control group 10684 1034 8155 2824 4936 32470 60103
Divorce
Event group 913 1054 369 349 742 291 1435 5153
Control group 11811 14802 8029 4482 2628 3272 32773 77797
Widowhood
Event group 812 2968 271 346 1038 5435
Control group 11783 12822 8092 4442 32751 69890
Graduation
Event group 3890 2345 4081 307 3744 14367
Control group 30611 14137 4589 12091 90163 151591
New employment
Event group 10135 2345 2652 4043 14188 33363
Control group 24366 21501 13830 8355 79719 147771
Unemployment
Event group 3920 840 1551 1122 1410 5536 14379
Control group 15565 10944 10293 5228 7419 32921 82370
Retirement
Event group 3249 5298 1269 1088 3781 14685
Control group 17423 5506 11132 4184 51130 89375

Number of Personality Trait Assessments

assess <- as.data.frame(cbind(
  rbind(
    relbeg_hilda %>% filter(relbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    relbeg_hilda %>% filter(relbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_hilda %>% filter(marriage_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_hilda %>% filter(marriage_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_hilda %>% filter(child_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_hilda %>% filter(child_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_hilda %>% filter(separat_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_hilda %>% filter(separat_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_hilda %>% filter(divor_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_hilda %>% filter(divor_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    widow_hilda %>% filter(widow_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    widow_hilda %>% filter(widow_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    gradu_hilda %>% filter(gradu_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    gradu_hilda %>% filter(gradu_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    jobbeg_hilda %>% filter(jobbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    jobbeg_hilda %>% filter(jobbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_hilda %>% filter(unemploy_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_hilda %>% filter(unemploy_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    retire_hilda %>% filter(retire_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    retire_hilda %>% filter(retire_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow()), 
    rbind(
     relbeg_hrs %>% filter(relbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    relbeg_hrs %>% filter(relbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_hrs %>% filter(marriage_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_hrs %>% filter(marriage_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_hrs %>% filter(child_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_hrs %>% filter(child_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_hrs %>% filter(separat_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_hrs %>% filter(separat_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_hrs %>% filter(divor_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_hrs %>% filter(divor_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    widow_hrs %>% filter(widow_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    widow_hrs %>% filter(widow_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    NA, 
    NA,
    jobbeg_hrs %>% filter(jobbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    jobbeg_hrs %>% filter(jobbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_hrs %>% filter(unemploy_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_hrs %>% filter(unemploy_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    retire_hrs %>% filter(retire_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    retire_hrs %>% filter(retire_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow()), 
    rbind(
          relbeg_liss %>% filter(relbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    relbeg_liss %>% filter(relbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_liss %>% filter(marriage_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_liss %>% filter(marriage_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_liss %>% filter(child_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_liss %>% filter(child_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_liss %>% filter(separat_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_liss %>% filter(separat_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_liss %>% filter(divor_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_liss %>% filter(divor_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    widow_liss %>% filter(widow_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    widow_liss %>% filter(widow_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    gradu_liss %>% filter(gradu_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    gradu_liss %>% filter(gradu_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    jobbeg_liss %>% filter(jobbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    jobbeg_liss %>% filter(jobbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_liss %>% filter(unemploy_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_liss %>% filter(unemploy_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    retire_liss %>% filter(retire_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    retire_liss %>% filter(retire_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow()), 
    rbind(
          relbeg_midus %>% filter(relbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    relbeg_midus %>% filter(relbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_midus %>% filter(marriage_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_midus %>% filter(marriage_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_midus %>% filter(child_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_midus %>% filter(child_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    NA, 
    NA,
    divor_midus %>% filter(divor_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_midus %>% filter(divor_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    widow_midus %>% filter(widow_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    widow_midus %>% filter(widow_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    NA, 
    NA, 
    NA, 
    NA,
    NA,
    NA,
    retire_midus %>% filter(retire_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    retire_midus %>% filter(retire_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow()), 
    rbind(
       relbeg_nlsy %>% filter(relbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    relbeg_nlsy %>% filter(relbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_nlsy %>% filter(marriage_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_nlsy %>% filter(marriage_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_nlsy %>% filter(child_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_nlsy %>% filter(child_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_nlsy %>% filter(separat_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_nlsy %>% filter(separat_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_nlsy %>% filter(divor_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_nlsy %>% filter(divor_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    NA, 
    NA,
    gradu_nlsy %>% filter(gradu_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    gradu_nlsy %>% filter(gradu_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    NA, 
    NA,
    unemploy_nlsy %>% filter(unemploy_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_nlsy %>% filter(unemploy_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    NA, 
    NA), 
    rbind(
      relbeg_pair %>% filter(relbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    relbeg_pair %>% filter(relbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_pair %>% filter(marriage_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_pair %>% filter(marriage_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_pair %>% filter(child_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_pair %>% filter(child_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_pair %>% filter(separat_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_pair %>% filter(separat_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_pair %>% filter(divor_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_pair %>% filter(divor_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    NA, 
    NA,
    gradu_pair %>% filter(gradu_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    gradu_pair %>% filter(gradu_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    jobbeg_pair %>% filter(jobbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    jobbeg_pair %>% filter(jobbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_pair %>% filter(unemploy_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_pair %>% filter(unemploy_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
   NA, 
   NA), 
    rbind(
      relbeg_soep %>% filter(relbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    relbeg_soep %>% filter(relbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_soep %>% filter(marriage_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    marriage_soep %>% filter(marriage_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_soep %>% filter(child_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    child_soep %>% filter(child_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_soep %>% filter(separat_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    separat_soep %>% filter(separat_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_soep %>% filter(divor_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    divor_soep %>% filter(divor_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    widow_soep %>% filter(widow_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    widow_soep %>% filter(widow_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    gradu_soep %>% filter(gradu_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    gradu_soep %>% filter(gradu_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    jobbeg_soep %>% filter(jobbeg_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    jobbeg_soep %>% filter(jobbeg_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_soep %>% filter(unemploy_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    unemploy_soep %>% filter(unemploy_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    retire_soep %>% filter(retire_control == 1) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow(),
    retire_soep %>% filter(retire_control == 0) %>% filter(!is.na(agree.z) | !is.na(consc.z) | !is.na(emost.z) | !is.na(extra.z) | !is.na(open.z)) %>% nrow())
))

names(assess) <- c("HILDA", "HRS", "LISS", "MIDUS", "NLSY", "PAIRFAM", "SOEP")
assess$Total <- rowSums(assess, na.rm = TRUE)

assess$Group <- rep(c("Event group", "Control group"), 10)

assess <- select(assess, Group, HILDA, HRS, LISS, MIDUS, NLSY, PAIRFAM, SOEP, Total)

kable(assess
      , caption="**Number of assessments across different life events and panel studies**"
      , escape=FALSE
      , label = NA
      , digits = 3) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  pack_rows(index = c("New relationship" = 2, "Marriage" = 2, "Childbirth" = 2, 
                      "Separation" = 2, "Divorce" = 2,  "Widowhood" = 2,
                      "Graduation" = 2, "New employment" = 2, 
                      "Unemployment" = 2, "Retirement" = 2))
Number of assessments across different life events and panel studies
Group HILDA HRS LISS MIDUS NLSY PAIRFAM SOEP Total
New relationship
Event group 2372 1594 9107 434 4637 7734 22910 48788
Control group 66042 52148 57789 12712 18922 10970 97779 316362
Marriage
Event group 11134 2068 5952 887 7645 3073 11105 41864
Control group 57280 51674 60944 12259 15914 15631 109584 323286
Childbirth
Event group 14278 4062 4628 1060 10962 4152 12249 51391
Control group 54136 49680 62268 12086 12597 14552 108440 313759
Separation
Event group 13777 2206 1223 1611 6649 4159 29625
Control group 34079 2014 38226 8532 9567 75302 167720
Divorce
Event group 3548 2649 2271 877 2283 783 4548 16959
Control group 38407 35206 37425 9543 7926 7026 76045 211578
Widowhood
Event group 2977 8145 2081 913 3629 17745
Control group 38473 29633 37551 9404 75931 190992
Graduation
Event group 12886 10730 11717 806 8996 45135
Control group 55528 56166 11842 17898 111693 253127
New employment
Event group 33096 6584 13495 10333 38996 102504
Control group 35318 47158 53401 8371 81693 225941
Unemployment
Event group 14118 2283 8995 3512 3554 16066 48528
Control group 42208 26179 38228 15470 14539 70446 207070
Retirement
Event group 12760 15037 9864 2894 13868 54423
Control group 46471 10161 40428 8231 105718 211009

Number of Life Satisfaction Assessments

assess <- as.data.frame(cbind(
  rbind(
    relbeg_hilda %>% filter(relbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    relbeg_hilda %>% filter(relbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_hilda %>% filter(marriage_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_hilda %>% filter(marriage_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_hilda %>% filter(child_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_hilda %>% filter(child_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_hilda %>% filter(separat_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_hilda %>% filter(separat_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_hilda %>% filter(divor_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_hilda %>% filter(divor_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    widow_hilda %>% filter(widow_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    widow_hilda %>% filter(widow_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    gradu_hilda %>% filter(gradu_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    gradu_hilda %>% filter(gradu_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    jobbeg_hilda %>% filter(jobbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    jobbeg_hilda %>% filter(jobbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_hilda %>% filter(unemploy_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_hilda %>% filter(unemploy_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    retire_hilda %>% filter(retire_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    retire_hilda %>% filter(retire_control == 0) %>% filter(!is.na(ls.z)) %>% nrow()), 
    rbind(
     relbeg_hrs %>% filter(relbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    relbeg_hrs %>% filter(relbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_hrs %>% filter(marriage_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_hrs %>% filter(marriage_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_hrs %>% filter(child_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_hrs %>% filter(child_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_hrs %>% filter(separat_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_hrs %>% filter(separat_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_hrs %>% filter(divor_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_hrs %>% filter(divor_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    widow_hrs %>% filter(widow_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    widow_hrs %>% filter(widow_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    NA, 
    NA,
    jobbeg_hrs %>% filter(jobbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    jobbeg_hrs %>% filter(jobbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_hrs %>% filter(unemploy_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_hrs %>% filter(unemploy_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    retire_hrs %>% filter(retire_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    retire_hrs %>% filter(retire_control == 0) %>% filter(!is.na(ls.z)) %>% nrow()), 
    rbind(
          relbeg_liss %>% filter(relbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    relbeg_liss %>% filter(relbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_liss %>% filter(marriage_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_liss %>% filter(marriage_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_liss %>% filter(child_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_liss %>% filter(child_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_liss %>% filter(separat_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_liss %>% filter(separat_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_liss %>% filter(divor_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_liss %>% filter(divor_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    widow_liss %>% filter(widow_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    widow_liss %>% filter(widow_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    gradu_liss %>% filter(gradu_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    gradu_liss %>% filter(gradu_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    jobbeg_liss %>% filter(jobbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    jobbeg_liss %>% filter(jobbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_liss %>% filter(unemploy_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_liss %>% filter(unemploy_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    retire_liss %>% filter(retire_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    retire_liss %>% filter(retire_control == 0) %>% filter(!is.na(ls.z)) %>% nrow()), 
    rbind(
          relbeg_midus %>% filter(relbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    relbeg_midus %>% filter(relbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_midus %>% filter(marriage_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_midus %>% filter(marriage_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_midus %>% filter(child_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_midus %>% filter(child_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    NA, 
    NA,
    divor_midus %>% filter(divor_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_midus %>% filter(divor_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    widow_midus %>% filter(widow_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    widow_midus %>% filter(widow_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    NA, 
    NA, 
    NA, 
    NA,
    NA,
    NA,
    retire_midus %>% filter(retire_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    retire_midus %>% filter(retire_control == 0) %>% filter(!is.na(ls.z)) %>% nrow()), 
    rbind(
       relbeg_nlsy %>% filter(relbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    relbeg_nlsy %>% filter(relbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_nlsy %>% filter(marriage_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_nlsy %>% filter(marriage_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_nlsy %>% filter(child_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_nlsy %>% filter(child_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_nlsy %>% filter(separat_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_nlsy %>% filter(separat_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_nlsy %>% filter(divor_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_nlsy %>% filter(divor_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    NA, 
    NA,
    gradu_nlsy %>% filter(gradu_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    gradu_nlsy %>% filter(gradu_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    NA, 
    NA,
    unemploy_nlsy %>% filter(unemploy_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_nlsy %>% filter(unemploy_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    NA, 
    NA), 
    rbind(
      relbeg_pair %>% filter(relbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    relbeg_pair %>% filter(relbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_pair %>% filter(marriage_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_pair %>% filter(marriage_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_pair %>% filter(child_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_pair %>% filter(child_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_pair %>% filter(separat_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_pair %>% filter(separat_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_pair %>% filter(divor_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_pair %>% filter(divor_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    NA, 
    NA,
    gradu_pair %>% filter(gradu_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    gradu_pair %>% filter(gradu_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    jobbeg_pair %>% filter(jobbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    jobbeg_pair %>% filter(jobbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_pair %>% filter(unemploy_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_pair %>% filter(unemploy_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
   NA, 
   NA), 
    rbind(
      relbeg_soep %>% filter(relbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    relbeg_soep %>% filter(relbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_soep %>% filter(marriage_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    marriage_soep %>% filter(marriage_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_soep %>% filter(child_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    child_soep %>% filter(child_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_soep %>% filter(separat_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    separat_soep %>% filter(separat_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_soep %>% filter(divor_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    divor_soep %>% filter(divor_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    widow_soep %>% filter(widow_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    widow_soep %>% filter(widow_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    gradu_soep %>% filter(gradu_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    gradu_soep %>% filter(gradu_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    jobbeg_soep %>% filter(jobbeg_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    jobbeg_soep %>% filter(jobbeg_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_soep %>% filter(unemploy_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    unemploy_soep %>% filter(unemploy_control == 0) %>% filter(!is.na(ls.z)) %>% nrow(),
    retire_soep %>% filter(retire_control == 1) %>% filter(!is.na(ls.z)) %>% nrow(),
    retire_soep %>% filter(retire_control == 0) %>% filter(!is.na(ls.z)) %>% nrow())
))

names(assess) <- c("HILDA", "HRS", "LISS", "MIDUS", "NLSY", "PAIRFAM", "SOEP")
assess$Total <- rowSums(assess, na.rm = TRUE)

assess$Group <- rep(c("Event group", "Control group"), 10)

assess <- select(assess, Group, HILDA, HRS, LISS, MIDUS, NLSY, PAIRFAM, SOEP, Total)

kable(assess
      , caption="**Number of assessments across different life events and panel studies**"
      , escape=FALSE
      , label = NA
      , digits = 3) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  pack_rows(index = c("New relationship" = 2, "Marriage" = 2, "Childbirth" = 2, 
                      "Separation" = 2, "Divorce" = 2,  "Widowhood" = 2,
                      "Graduation" = 2, "New employment" = 2, 
                      "Unemployment" = 2, "Retirement" = 2))
Number of assessments across different life events and panel studies
Group HILDA HRS LISS MIDUS NLSY PAIRFAM SOEP Total
New relationship
Event group 11180 1374 12122 433 2866 26600 102867 157442
Control group 326236 43993 74678 12624 12363 40022 628877 1138793
Marriage
Event group 49415 1795 7918 883 4440 10420 50083 124954
Control group 288001 43572 78882 12174 10789 56202 681661 1171281
Childbirth
Event group 64337 3441 6125 1058 6158 14188 53868 149175
Control group 273079 41926 80675 11999 9071 52434 677876 1147060
Separation
Event group 63333 1932 1646 843 22878 20311 110943
Control group 158590 1795 50393 4748 32133 380296 627955
Divorce
Event group 16657 2266 3037 872 1177 2663 22246 48918
Control group 178496 29710 49322 9454 4435 23763 383905 679085
Widowhood
Event group 14486 6579 2841 896 20236 45038
Control group 178370 25308 49452 9329 380984 643443
Graduation
Event group 57393 14082 9080 2721 34404 117680
Control group 280023 72718 6149 63901 697340 1120131
New employment
Event group 148103 5662 17857 35431 178202 385255
Control group 189313 39705 68943 31191 553542 882694
Unemployment
Event group 63594 1988 12050 2315 12180 77329 169456
Control group 191756 22871 48897 9423 48901 325616 647464
Retirement
Event group 58877 12931 13310 2866 74557 162541
Control group 210097 9250 51753 8168 506486 785754

Number of Self-Esteem Assessments

assess <- as.data.frame(cbind(
    rbind(
          relbeg_liss %>% filter(relbeg_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    relbeg_liss %>% filter(relbeg_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    marriage_liss %>% filter(marriage_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    marriage_liss %>% filter(marriage_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    child_liss %>% filter(child_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    child_liss %>% filter(child_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    separat_liss %>% filter(separat_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    separat_liss %>% filter(separat_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    divor_liss %>% filter(divor_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    divor_liss %>% filter(divor_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    widow_liss %>% filter(widow_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    widow_liss %>% filter(widow_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    gradu_liss %>% filter(gradu_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    gradu_liss %>% filter(gradu_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    jobbeg_liss %>% filter(jobbeg_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    jobbeg_liss %>% filter(jobbeg_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    unemploy_liss %>% filter(unemploy_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    unemploy_liss %>% filter(unemploy_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    retire_liss %>% filter(retire_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    retire_liss %>% filter(retire_control == 0) %>% filter(!is.na(se.z)) %>% nrow()), 
    rbind(
          relbeg_midus %>% filter(relbeg_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    relbeg_midus %>% filter(relbeg_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    marriage_midus %>% filter(marriage_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    marriage_midus %>% filter(marriage_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    child_midus %>% filter(child_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    child_midus %>% filter(child_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    NA, 
    NA,
    divor_midus %>% filter(divor_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    divor_midus %>% filter(divor_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    widow_midus %>% filter(widow_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    widow_midus %>% filter(widow_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    NA, 
    NA, 
    NA, 
    NA,
    NA,
    NA,
    retire_midus %>% filter(retire_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    retire_midus %>% filter(retire_control == 0) %>% filter(!is.na(se.z)) %>% nrow()), 
    rbind(
       relbeg_nlsy %>% filter(relbeg_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    relbeg_nlsy %>% filter(relbeg_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    marriage_nlsy %>% filter(marriage_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    marriage_nlsy %>% filter(marriage_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    child_nlsy %>% filter(child_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    child_nlsy %>% filter(child_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    separat_nlsy %>% filter(separat_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    separat_nlsy %>% filter(separat_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    divor_nlsy %>% filter(divor_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    divor_nlsy %>% filter(divor_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    NA, 
    NA,
    gradu_nlsy %>% filter(gradu_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    gradu_nlsy %>% filter(gradu_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    NA, 
    NA,
    unemploy_nlsy %>% filter(unemploy_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    unemploy_nlsy %>% filter(unemploy_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    NA, 
    NA), 
    rbind(
      relbeg_pair %>% filter(relbeg_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    relbeg_pair %>% filter(relbeg_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    marriage_pair %>% filter(marriage_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    marriage_pair %>% filter(marriage_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    child_pair %>% filter(child_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    child_pair %>% filter(child_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    separat_pair %>% filter(separat_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    separat_pair %>% filter(separat_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    divor_pair %>% filter(divor_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    divor_pair %>% filter(divor_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    NA, 
    NA,
    gradu_pair %>% filter(gradu_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    gradu_pair %>% filter(gradu_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    jobbeg_pair %>% filter(jobbeg_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    jobbeg_pair %>% filter(jobbeg_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    unemploy_pair %>% filter(unemploy_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    unemploy_pair %>% filter(unemploy_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
   NA, 
   NA), 
    rbind(
      relbeg_soep %>% filter(relbeg_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    relbeg_soep %>% filter(relbeg_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    marriage_soep %>% filter(marriage_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    marriage_soep %>% filter(marriage_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    child_soep %>% filter(child_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    child_soep %>% filter(child_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    separat_soep %>% filter(separat_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    separat_soep %>% filter(separat_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    divor_soep %>% filter(divor_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    divor_soep %>% filter(divor_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    widow_soep %>% filter(widow_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    widow_soep %>% filter(widow_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    gradu_soep %>% filter(gradu_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    gradu_soep %>% filter(gradu_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    jobbeg_soep %>% filter(jobbeg_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    jobbeg_soep %>% filter(jobbeg_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    unemploy_soep %>% filter(unemploy_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    unemploy_soep %>% filter(unemploy_control == 0) %>% filter(!is.na(se.z)) %>% nrow(),
    retire_soep %>% filter(retire_control == 1) %>% filter(!is.na(se.z)) %>% nrow(),
    retire_soep %>% filter(retire_control == 0) %>% filter(!is.na(se.z)) %>% nrow())
))

names(assess) <- c("LISS", "MIDUS", "NLSY", "PAIRFAM", "SOEP")
assess$Total <- rowSums(assess, na.rm = TRUE)

assess$Group <- rep(c("Event group", "Control group"), 10)

assess <- select(assess, Group, LISS, MIDUS, NLSY, PAIRFAM, SOEP, Total)

kable(assess
      , caption="**Number of assessments across different life events and panel studies**"
      , escape=FALSE
      , label = NA
      , digits = 3) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  pack_rows(index = c("New relationship" = 2, "Marriage" = 2, "Childbirth" = 2, 
                      "Separation" = 2, "Divorce" = 2,  "Widowhood" = 2,
                      "Graduation" = 2, "New employment" = 2, 
                      "Unemployment" = 2, "Retirement" = 2))
Number of assessments across different life events and panel studies
Group LISS MIDUS NLSY PAIRFAM SOEP Total
New relationship
Event group 9096 256 5134 23257 13305 51048
Control group 57734 6503 22391 30482 58454 175564
Marriage
Event group 5942 558 8702 9231 6583 31016
Control group 60888 6201 18823 44508 65176 195596
Childbirth
Event group 4624 661 12988 12538 7204 38015
Control group 62206 6098 14537 41201 64555 188597
Separation
Event group 1223 2209 20050 2388 25870
Control group 38201 10437 26992 41637 117267
Divorce
Event group 2271 528 3112 2359 2649 10919
Control group 37400 5060 9634 20345 42044 114483
Widowhood
Event group 2080 555 2076 4711
Control group 37527 4973 42011 84511
Graduation
Event group 10709 10764 2397 5306 29176
Control group 56121 16761 51342 66453 190677
New employment
Event group 13477 31211 22976 67664
Control group 53353 22528 48783 124664
Unemployment
Event group 8985 3625 10669 9344 32623
Control group 38183 17818 41189 39361 136551
Retirement
Event group 9862 1768 8051 19681
Control group 40374 4092 57533 101999

Sample Characteristics

Overall Sample

hilda_unique <- long_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE)
hrs_unique <- long_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE)
liss_unique <- long_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE)
midus_unique <- long_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE)
nlsy_unique <- long_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE)
pair_unique <- long_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE)
soep_unique <- long_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique), paste0(round(describe(hilda_unique$age)$mean, 2), " (", 
                               round(describe(hilda_unique$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique$education))["higher"]),4)*100), 
    c(nrow(hrs_unique), paste0(round(describe(hrs_unique$age)$mean, 2), " (", 
                               round(describe(hrs_unique$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique$education))["higher"]),4)*100), 
    c(nrow(liss_unique), paste0(round(describe(liss_unique$age)$mean, 2), " (", 
                               round(describe(liss_unique$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique$education))["higher"]),4)*100), 
    c(nrow(midus_unique), paste0(round(describe(midus_unique$age)$mean, 2), " (", 
                               round(describe(midus_unique$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique$education))["higher"]),4)*100), 
    c(nrow(nlsy_unique), paste0(round(describe(nlsy_unique$age)$mean, 2), " (", 
                               round(describe(nlsy_unique$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique$high.edu))["higher"]),4)*100), 
    c(nrow(pair_unique), paste0(round(describe(pair_unique$age)$mean, 2), " (", 
                               round(describe(pair_unique$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique$education))["higher"]),4)*100), 
    c(nrow(soep_unique), paste0(round(describe(soep_unique$age)$mean, 2), " (", 
                               round(describe(soep_unique$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique$education))["higher"]),4)*100) 
  ))

row.names(desc) <- c("HILDA", "HRS", "LISS", "MIDUS", "NLSY", "PAIRFAM", "SOEP")
names(desc) <- c("N", "Mean age (SD)", "% Female", "% Higher education")

kable(desc
      , caption="**Sample characteristics across events**"
      , escape=FALSE
      , label = NA
      , digits = 3) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left")
Sample characteristics across events
N Mean age (SD) % Female % Higher education
HILDA 34501 36.05 (18.2) 51.49 42.51
HRS 23846 66.46 (11.68) 58.35 47.64
LISS 16482 44.7 (18.1) 54.05 44.5
MIDUS 6452 47.06 (12.97) 52.46 39.34
NLSY 8670 19.08 (4.57) 48.87 24.47
PAIRFAM 12398 25.86 (8.34) 51.39 28.16
SOEP 93907 39.18 (17.36) 51.3 28.12

Event Specific

New Relationship

hilda_unique_event <- relbeg_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 1)
hilda_unique_control <- relbeg_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 0)
hrs_unique_event <- relbeg_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 1)
hrs_unique_control <- relbeg_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 0)
liss_unique_event <- relbeg_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 1)
liss_unique_control <- relbeg_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 0)
midus_unique_event <- relbeg_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 1)
midus_unique_control <- relbeg_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 0)
nlsy_unique_event <- relbeg_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 1)
nlsy_unique_control <- relbeg_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 0)
pair_unique_event <- relbeg_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 1)
pair_unique_control <- relbeg_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 0)
soep_unique_event <- relbeg_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 1)
soep_unique_control <- relbeg_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(relbeg_control == 0)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique_event), paste0(round(describe(hilda_unique_event$age)$mean, 2), " (", 
                               round(describe(hilda_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_event$education))["higher"]),4)*100,
    nrow(hilda_unique_control), paste0(round(describe(hilda_unique_control$age)$mean, 2), " (", 
                               round(describe(hilda_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_control$education))["higher"]),4)*100), 
     c(nrow(hrs_unique_event), paste0(round(describe(hrs_unique_event$age)$mean, 2), " (", 
                               round(describe(hrs_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_event$education))["higher"]),4)*100,
    nrow(hrs_unique_control), paste0(round(describe(hrs_unique_control$age)$mean, 2), " (", 
                               round(describe(hrs_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_control$education))["higher"]),4)*100), 
    c(nrow(liss_unique_event), paste0(round(describe(liss_unique_event$age)$mean, 2), " (", 
                               round(describe(liss_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_event$education))["higher"]),4)*100,
    nrow(liss_unique_control), paste0(round(describe(liss_unique_control$age)$mean, 2), " (", 
                               round(describe(liss_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_control$education))["higher"]),4)*100), 
    c(nrow(midus_unique_event), paste0(round(describe(midus_unique_event$age)$mean, 2), " (", 
                               round(describe(midus_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_event$education))["higher"]),4)*100,
    nrow(midus_unique_control), paste0(round(describe(midus_unique_control$age)$mean, 2), " (", 
                               round(describe(midus_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_control$education))["higher"]),4)*100), 
    c(nrow(nlsy_unique_event), paste0(round(describe(nlsy_unique_event$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_event$education))["higher"]),4)*100,
    nrow(nlsy_unique_control), paste0(round(describe(nlsy_unique_control$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_control$education))["higher"]),4)*100), 
    c(nrow(pair_unique_event), paste0(round(describe(pair_unique_event$age)$mean, 2), " (", 
                               round(describe(pair_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_event$education))["higher"]),4)*100,
    nrow(pair_unique_control), paste0(round(describe(pair_unique_control$age)$mean, 2), " (", 
                               round(describe(pair_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_control$education))["higher"]),4)*100), 
    c(nrow(soep_unique_event), paste0(round(describe(soep_unique_event$age)$mean, 2), " (", 
                               round(describe(soep_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_event$education))["higher"]),4)*100,
    nrow(soep_unique_control), paste0(round(describe(soep_unique_control$age)$mean, 2), " (", 
                               round(describe(soep_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_control$education))["higher"]),4)*100)
  ))

row.names(desc) <- c("HILDA", "HRS", "LISS", "MIDUS", "NLSY", "PAIRFAM", "SOEP")

kable(desc
      , caption="**Sample characteristics for event new relationship**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = rep(c("N", "Mean age (SD)", "% Female", "% Higher education"), 2)) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  add_header_above(c(" " = 1, "Event group" = 4, "Control group" = 4))
Sample characteristics for event new relationship
Event group
Control group
N Mean age (SD) % Female % Higher education N Mean age (SD) % Female % Higher education
HILDA 748 23.39 (9.69) 50.27 25.4 33753 36.33 (18.25) 51.51 42.89
HRS 597 60.67 (9.65) 50.92 51.59 23249 66.61 (11.69) 58.54 47.54
LISS 1533 31.9 (15.73) 58.77 49.05 14949 46.02 (17.81) 53.56 44.03
MIDUS 178 39.58 (10.84) 50.56 42.7 6274 47.28 (12.96) 52.52 39.24
NLSY 1521 18.69 (3.98) 52.14 7149 19.17 (4.69) 48.17
PAIRFAM 3204 20.63 (7.13) 50.75 27.34 9194 27.69 (7.95) 51.61 28.29
SOEP 8588 27.77 (13.41) 55.67 19.78 85319 40.33 (17.3) 50.86 28.96

Marriage

hilda_unique_event <- marriage_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 1)
hilda_unique_control <- marriage_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 0)
hrs_unique_event <- marriage_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 1)
hrs_unique_control <- marriage_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 0)
liss_unique_event <- marriage_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 1)
liss_unique_control <- marriage_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 0)
midus_unique_event <- marriage_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 1)
midus_unique_control <- marriage_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 0)
nlsy_unique_event <- marriage_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 1)
nlsy_unique_control <- marriage_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 0)
pair_unique_event <- marriage_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 1)
pair_unique_control <- marriage_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 0)
soep_unique_event <- marriage_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 1)
soep_unique_control <- marriage_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(marriage_control == 0)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique_event), paste0(round(describe(hilda_unique_event$age)$mean, 2), " (", 
                               round(describe(hilda_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_event$education))["higher"]),4)*100,
    nrow(hilda_unique_control), paste0(round(describe(hilda_unique_control$age)$mean, 2), " (", 
                               round(describe(hilda_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_control$education))["higher"]),4)*100), 
     c(nrow(hrs_unique_event), paste0(round(describe(hrs_unique_event$age)$mean, 2), " (", 
                               round(describe(hrs_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_event$education))["higher"]),4)*100,
    nrow(hrs_unique_control), paste0(round(describe(hrs_unique_control$age)$mean, 2), " (", 
                               round(describe(hrs_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_control$education))["higher"]),4)*100), 
    c(nrow(liss_unique_event), paste0(round(describe(liss_unique_event$age)$mean, 2), " (", 
                               round(describe(liss_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_event$education))["higher"]),4)*100,
    nrow(liss_unique_control), paste0(round(describe(liss_unique_control$age)$mean, 2), " (", 
                               round(describe(liss_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_control$education))["higher"]),4)*100), 
    c(nrow(midus_unique_event), paste0(round(describe(midus_unique_event$age)$mean, 2), " (", 
                               round(describe(midus_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_event$education))["higher"]),4)*100,
    nrow(midus_unique_control), paste0(round(describe(midus_unique_control$age)$mean, 2), " (", 
                               round(describe(midus_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_control$education))["higher"]),4)*100), 
    c(nrow(nlsy_unique_event), paste0(round(describe(nlsy_unique_event$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_event$education))["higher"]),4)*100,
    nrow(nlsy_unique_control), paste0(round(describe(nlsy_unique_control$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_control$education))["higher"]),4)*100), 
    c(nrow(pair_unique_event), paste0(round(describe(pair_unique_event$age)$mean, 2), " (", 
                               round(describe(pair_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_event$education))["higher"]),4)*100,
    nrow(pair_unique_control), paste0(round(describe(pair_unique_control$age)$mean, 2), " (", 
                               round(describe(pair_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_control$education))["higher"]),4)*100), 
    c(nrow(soep_unique_event), paste0(round(describe(soep_unique_event$age)$mean, 2), " (", 
                               round(describe(soep_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_event$education))["higher"]),4)*100,
    nrow(soep_unique_control), paste0(round(describe(soep_unique_control$age)$mean, 2), " (", 
                               round(describe(soep_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_control$education))["higher"]),4)*100)
  ))

row.names(desc) <- c("HILDA", "HRS", "LISS", "MIDUS", "NLSY", "PAIRFAM", "SOEP")

kable(desc
      , caption="**Sample characteristics for event marriage**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = rep(c("N", "Mean age (SD)", "% Female", "% Higher education"), 2)) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  add_header_above(c(" " = 1, "Event group" = 4, "Control group" = 4))
Sample characteristics for event marriage
Event group
Control group
N Mean age (SD) % Female % Higher education N Mean age (SD) % Female % Higher education
HILDA 3146 28.86 (12.52) 52.03 46.76 31355 36.78 (18.52) 51.43 42.08
HRS 783 60.7 (9.73) 51.21 56.45 23063 66.65 (11.69) 58.59 47.34
LISS 1056 33.7 (13.03) 54.73 54.74 15426 45.46 (18.15) 54 43.79
MIDUS 321 41.77 (9.83) 53.89 44.86 6131 47.34 (13.05) 52.39 39.05
NLSY 2440 19.11 (4.01) 53.2 6230 19.07 (4.78) 47.17
PAIRFAM 1145 25.28 (6.77) 52.23 35.67 11253 25.92 (8.48) 51.3 27.35
SOEP 3545 29.01 (11.59) 55.09 28.58 90362 39.58 (17.43) 51.15 28.1

Childbirth

hilda_unique_event <- child_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 1)
hilda_unique_control <- child_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 0)
hrs_unique_event <- child_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 1)
hrs_unique_control <- child_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 0)
liss_unique_event <- child_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 1)
liss_unique_control <- child_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 0)
midus_unique_event <- child_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 1)
midus_unique_control <- child_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 0)
nlsy_unique_event <- child_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 1)
nlsy_unique_control <- child_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 0)
pair_unique_event <- child_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 1)
pair_unique_control <- child_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 0)
soep_unique_event <- child_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 1)
soep_unique_control <- child_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(child_control == 0)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique_event), paste0(round(describe(hilda_unique_event$age)$mean, 2), " (", 
                               round(describe(hilda_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_event$education))["higher"]),4)*100,
    nrow(hilda_unique_control), paste0(round(describe(hilda_unique_control$age)$mean, 2), " (", 
                               round(describe(hilda_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_control$education))["higher"]),4)*100), 
     c(nrow(hrs_unique_event), paste0(round(describe(hrs_unique_event$age)$mean, 2), " (", 
                               round(describe(hrs_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_event$education))["higher"]),4)*100,
    nrow(hrs_unique_control), paste0(round(describe(hrs_unique_control$age)$mean, 2), " (", 
                               round(describe(hrs_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_control$education))["higher"]),4)*100), 
    c(nrow(liss_unique_event), paste0(round(describe(liss_unique_event$age)$mean, 2), " (", 
                               round(describe(liss_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_event$education))["higher"]),4)*100,
    nrow(liss_unique_control), paste0(round(describe(liss_unique_control$age)$mean, 2), " (", 
                               round(describe(liss_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_control$education))["higher"]),4)*100), 
    c(nrow(midus_unique_event), paste0(round(describe(midus_unique_event$age)$mean, 2), " (", 
                               round(describe(midus_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_event$education))["higher"]),4)*100,
    nrow(midus_unique_control), paste0(round(describe(midus_unique_control$age)$mean, 2), " (", 
                               round(describe(midus_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_control$education))["higher"]),4)*100), 
    c(nrow(nlsy_unique_event), paste0(round(describe(nlsy_unique_event$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_event$education))["higher"]),4)*100,
    nrow(nlsy_unique_control), paste0(round(describe(nlsy_unique_control$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_control$education))["higher"]),4)*100), 
    c(nrow(pair_unique_event), paste0(round(describe(pair_unique_event$age)$mean, 2), " (", 
                               round(describe(pair_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_event$education))["higher"]),4)*100,
    nrow(pair_unique_control), paste0(round(describe(pair_unique_control$age)$mean, 2), " (", 
                               round(describe(pair_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_control$education))["higher"]),4)*100), 
    c(nrow(soep_unique_event), paste0(round(describe(soep_unique_event$age)$mean, 2), " (", 
                               round(describe(soep_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_event$education))["higher"]),4)*100,
    nrow(soep_unique_control), paste0(round(describe(soep_unique_control$age)$mean, 2), " (", 
                               round(describe(soep_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_control$education))["higher"]),4)*100)
  ))

row.names(desc) <- c("HILDA", "HRS", "LISS", "MIDUS", "NLSY", "PAIRFAM", "SOEP")

kable(desc
      , caption="**Sample characteristics for event childbirth**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = rep(c("N", "Mean age (SD)", "% Female", "% Higher education"), 2)) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  add_header_above(c(" " = 1, "Event group" = 4, "Control group" = 4))
Sample characteristics for event childbirth
Event group
Control group
N Mean age (SD) % Female % Higher education N Mean age (SD) % Female % Higher education
HILDA 4136 25.4 (7.54) 53.68 51.21 30365 37.5 (18.74) 51.19 41.32
HRS 1599 63.77 (11.24) 54.78 44.78 22247 66.65 (11.68) 58.6 47.85
LISS 818 37.68 (11.26) 31.17 56.37 15664 45.07 (18.31) 55.24 43.88
MIDUS 400 32.58 (6.4) 45 60.75 6052 48.02 (12.72) 52.96 37.92
NLSY 3554 19.57 (3.99) 54.98 5116 18.74 (4.91) 44.62
PAIRFAM 1584 26.54 (6.48) 53.54 36.99 10814 25.77 (8.58) 51.07 26.55
SOEP 4328 25.94 (7.3) 54.81 32.36 89579 39.82 (17.45) 51.13 27.91

Separation

hilda_unique_event <- separat_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 1)
hilda_unique_control <- separat_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 0)
hrs_unique_event <- separat_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 1)
hrs_unique_control <- separat_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 0)
liss_unique_event <- separat_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 1)
liss_unique_control <- separat_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 0)
nlsy_unique_event <- separat_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 1)
nlsy_unique_control <- separat_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 0)
pair_unique_event <- separat_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 1)
pair_unique_control <- separat_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 0)
soep_unique_event <- separat_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 1)
soep_unique_control <- separat_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(separat_control == 0)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique_event), paste0(round(describe(hilda_unique_event$age)$mean, 2), " (", 
                               round(describe(hilda_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_event$education))["higher"]),4)*100,
    nrow(hilda_unique_control), paste0(round(describe(hilda_unique_control$age)$mean, 2), " (", 
                               round(describe(hilda_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_control$education))["higher"]),4)*100), 
     c(nrow(hrs_unique_event), paste0(round(describe(hrs_unique_event$age)$mean, 2), " (", 
                               round(describe(hrs_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_event$education))["higher"]),4)*100,
    nrow(hrs_unique_control), paste0(round(describe(hrs_unique_control$age)$mean, 2), " (", 
                               round(describe(hrs_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_control$education))["higher"]),4)*100), 
    c(nrow(liss_unique_event), paste0(round(describe(liss_unique_event$age)$mean, 2), " (", 
                               round(describe(liss_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_event$education))["higher"]),4)*100,
    nrow(liss_unique_control), paste0(round(describe(liss_unique_control$age)$mean, 2), " (", 
                               round(describe(liss_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_control$education))["higher"]),4)*100), 
    c(nrow(nlsy_unique_event), paste0(round(describe(nlsy_unique_event$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_event$education))["higher"]),4)*100,
    nrow(nlsy_unique_control), paste0(round(describe(nlsy_unique_control$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_control$education))["higher"]),4)*100), 
    c(nrow(pair_unique_event), paste0(round(describe(pair_unique_event$age)$mean, 2), " (", 
                               round(describe(pair_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_event$education))["higher"]),4)*100,
    nrow(pair_unique_control), paste0(round(describe(pair_unique_control$age)$mean, 2), " (", 
                               round(describe(pair_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_control$education))["higher"]),4)*100), 
    c(nrow(soep_unique_event), paste0(round(describe(soep_unique_event$age)$mean, 2), " (", 
                               round(describe(soep_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_event$education))["higher"]),4)*100,
    nrow(soep_unique_control), paste0(round(describe(soep_unique_control$age)$mean, 2), " (", 
                               round(describe(soep_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_control$education))["higher"]),4)*100)
  ))

row.names(desc) <- c("HILDA", "HRS", "LISS", "NLSY", "PAIRFAM", "SOEP")

kable(desc
      , caption="**Sample characteristics for event separation**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = rep(c("N", "Mean age (SD)", "% Female", "% Higher education"), 2)) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  add_header_above(c(" " = 1, "Event group" = 4, "Control group" = 4))
Sample characteristics for event separation
Event group
Control group
N Mean age (SD) % Female % Higher education N Mean age (SD) % Female % Higher education
HILDA 4032 29.97 (13.95) 55.28 35.96 10684 41.86 (16.13) 50.65 56.23
HRS 871 60.8 (10.5) 54.19 48.11 1034 60.29 (9.88) 51.16 47.58
LISS 185 46.37 (13.82) 52.43 48.11 8155 50.66 (14.74) 53.03 43.05
NLSY 522 21.44 (4.28) 58.05 2824 20.15 (4.48) 53.54
PAIRFAM 2723 21 (7.35) 51.23 26.25 4936 28.8 (7.74) 56.56 32.3
SOEP 1292 33.15 (11.15) 58.59 31.19 32470 43.53 (15.12) 49.98 37.68

Divorce

hilda_unique_event <- divor_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 1)
hilda_unique_control <- divor_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 0)
hrs_unique_event <- divor_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 1)
hrs_unique_control <- divor_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 0)
liss_unique_event <- divor_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 1)
liss_unique_control <- divor_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 0)
midus_unique_event <- divor_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 1)
midus_unique_control <- divor_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 0)
nlsy_unique_event <- divor_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 1)
nlsy_unique_control <- divor_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 0)
pair_unique_event <- divor_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 1)
pair_unique_control <- divor_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 0)
soep_unique_event <- divor_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 1)
soep_unique_control <- divor_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(divor_control == 0)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique_event), paste0(round(describe(hilda_unique_event$age)$mean, 2), " (", 
                               round(describe(hilda_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_event$education))["higher"]),4)*100,
    nrow(hilda_unique_control), paste0(round(describe(hilda_unique_control$age)$mean, 2), " (", 
                               round(describe(hilda_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_control$education))["higher"]),4)*100), 
     c(nrow(hrs_unique_event), paste0(round(describe(hrs_unique_event$age)$mean, 2), " (", 
                               round(describe(hrs_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_event$education))["higher"]),4)*100,
    nrow(hrs_unique_control), paste0(round(describe(hrs_unique_control$age)$mean, 2), " (", 
                               round(describe(hrs_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_control$education))["higher"]),4)*100), 
    c(nrow(liss_unique_event), paste0(round(describe(liss_unique_event$age)$mean, 2), " (", 
                               round(describe(liss_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_event$education))["higher"]),4)*100,
    nrow(liss_unique_control), paste0(round(describe(liss_unique_control$age)$mean, 2), " (", 
                               round(describe(liss_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_control$education))["higher"]),4)*100), 
    c(nrow(midus_unique_event), paste0(round(describe(midus_unique_event$age)$mean, 2), " (", 
                               round(describe(midus_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_event$education))["higher"]),4)*100,
    nrow(midus_unique_control), paste0(round(describe(midus_unique_control$age)$mean, 2), " (", 
                               round(describe(midus_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_control$education))["higher"]),4)*100), 
    c(nrow(nlsy_unique_event), paste0(round(describe(nlsy_unique_event$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_event$education))["higher"]),4)*100,
    nrow(nlsy_unique_control), paste0(round(describe(nlsy_unique_control$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_control$education))["higher"]),4)*100), 
    c(nrow(pair_unique_event), paste0(round(describe(pair_unique_event$age)$mean, 2), " (", 
                               round(describe(pair_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_event$education))["higher"]),4)*100,
    nrow(pair_unique_control), paste0(round(describe(pair_unique_control$age)$mean, 2), " (", 
                               round(describe(pair_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_control$education))["higher"]),4)*100), 
    c(nrow(soep_unique_event), paste0(round(describe(soep_unique_event$age)$mean, 2), " (", 
                               round(describe(soep_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_event$education))["higher"]),4)*100,
    nrow(soep_unique_control), paste0(round(describe(soep_unique_control$age)$mean, 2), " (", 
                               round(describe(soep_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_control$education))["higher"]),4)*100)
  ))

row.names(desc) <- c("HILDA", "HRS", "LISS", "MIDUS", "NLSY", "PAIRFAM", "SOEP")

kable(desc
      , caption="**Sample characteristics for event divorce**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = rep(c("N", "Mean age (SD)", "% Female", "% Higher education"), 2)) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  add_header_above(c(" " = 1, "Event group" = 4, "Control group" = 4))
Sample characteristics for event divorce
Event group
Control group
N Mean age (SD) % Female % Higher education N Mean age (SD) % Female % Higher education
HILDA 913 38.54 (13.81) 59.69 51.04 11811 41.06 (16.17) 50.82 54.88
HRS 1054 63.29 (10.53) 63.76 47.06 14802 65.49 (11) 50.84 50.96
LISS 369 42.33 (13) 54.74 46.47 8029 50.9 (14.71) 53.01 43.09
MIDUS 349 39.82 (9.76) 57.88 36.96 4482 47.11 (12.61) 48.24 41.06
NLSY 742 21.48 (4.26) 57.95 2628 20.08 (4.5) 52.78
PAIRFAM 291 30.42 (6.66) 63.57 29.25 3272 31.76 (5.81) 57.64 33.43
SOEP 1435 34.57 (11.47) 60.11 32.04 32773 43.44 (15.12) 50.05 37.61

Widowhood

hilda_unique_event <- widow_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(widow_control == 1)
hilda_unique_control <- widow_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(widow_control == 0)
hrs_unique_event <- widow_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(widow_control == 1)
hrs_unique_control <- widow_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(widow_control == 0)
liss_unique_event <- widow_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(widow_control == 1)
liss_unique_control <- widow_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(widow_control == 0)
midus_unique_event <- widow_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(widow_control == 1)
midus_unique_control <- widow_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(widow_control == 0)
soep_unique_event <- widow_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(widow_control == 1)
soep_unique_control <- widow_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(widow_control == 0)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique_event), paste0(round(describe(hilda_unique_event$age)$mean, 2), " (", 
                               round(describe(hilda_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_event$education))["higher"]),4)*100,
    nrow(hilda_unique_control), paste0(round(describe(hilda_unique_control$age)$mean, 2), " (", 
                               round(describe(hilda_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_control$education))["higher"]),4)*100), 
     c(nrow(hrs_unique_event), paste0(round(describe(hrs_unique_event$age)$mean, 2), " (", 
                               round(describe(hrs_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_event$education))["higher"]),4)*100,
    nrow(hrs_unique_control), paste0(round(describe(hrs_unique_control$age)$mean, 2), " (", 
                               round(describe(hrs_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_control$education))["higher"]),4)*100), 
    c(nrow(liss_unique_event), paste0(round(describe(liss_unique_event$age)$mean, 2), " (", 
                               round(describe(liss_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_event$education))["higher"]),4)*100,
    nrow(liss_unique_control), paste0(round(describe(liss_unique_control$age)$mean, 2), " (", 
                               round(describe(liss_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_control$education))["higher"]),4)*100), 
    c(nrow(midus_unique_event), paste0(round(describe(midus_unique_event$age)$mean, 2), " (", 
                               round(describe(midus_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_event$education))["higher"]),4)*100,
    nrow(midus_unique_control), paste0(round(describe(midus_unique_control$age)$mean, 2), " (", 
                               round(describe(midus_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_control$education))["higher"]),4)*100), 

    c(nrow(soep_unique_event), paste0(round(describe(soep_unique_event$age)$mean, 2), " (", 
                               round(describe(soep_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_event$education))["higher"]),4)*100,
    nrow(soep_unique_control), paste0(round(describe(soep_unique_control$age)$mean, 2), " (", 
                               round(describe(soep_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_control$education))["higher"]),4)*100)
  ))

row.names(desc) <- c("HILDA", "HRS", "LISS", "MIDUS", "SOEP")

kable(desc
      , caption="**Sample characteristics for event widowhood**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = rep(c("N", "Mean age (SD)", "% Female", "% Higher education"), 2)) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  add_header_above(c(" " = 1, "Event group" = 4, "Control group" = 4))
Sample characteristics for event widowhood
Event group
Control group
N Mean age (SD) % Female % Higher education N Mean age (SD) % Female % Higher education
HILDA 812 59.6 (13.21) 74.51 36.25 11783 39.68 (15.51) 49.85 55.7
HRS 2968 72.03 (10.04) 72.04 38.95 12822 64.05 (10.7) 47.4 52.96
LISS 271 66.17 (11.22) 61.25 35.69 8092 50.09 (14.56) 52.79 43.38
MIDUS 346 57.59 (10.12) 76.3 34.78 4442 45.81 (12.36) 46.78 41.38
SOEP 1038 54.96 (13.55) 70.04 25.83 32751 42.77 (15.02) 49.73 37.78

Graduation

hilda_unique_event <- gradu_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(gradu_control == 1)
hilda_unique_control <- gradu_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(gradu_control == 0)
liss_unique_event <- gradu_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(gradu_control == 1)
liss_unique_control <- gradu_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(gradu_control == 0)
nlsy_unique_event <- gradu_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(gradu_control == 1)
nlsy_unique_control <- gradu_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(gradu_control == 0)
pair_unique_event <- gradu_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(gradu_control == 1)
pair_unique_control <- gradu_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(gradu_control == 0)
soep_unique_event <- gradu_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(gradu_control == 1)
soep_unique_control <- gradu_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(gradu_control == 0)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique_event), paste0(round(describe(hilda_unique_event$age)$mean, 2), " (", 
                               round(describe(hilda_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_event$education))["higher"]),4)*100,
    nrow(hilda_unique_control), paste0(round(describe(hilda_unique_control$age)$mean, 2), " (", 
                               round(describe(hilda_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_control$education))["higher"]),4)*100), 
     
    c(nrow(liss_unique_event), paste0(round(describe(liss_unique_event$age)$mean, 2), " (", 
                               round(describe(liss_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_event$education))["higher"]),4)*100,
    nrow(liss_unique_control), paste0(round(describe(liss_unique_control$age)$mean, 2), " (", 
                               round(describe(liss_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_control$education))["higher"]),4)*100), 

    c(nrow(nlsy_unique_event), paste0(round(describe(nlsy_unique_event$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_event$education))["higher"]),4)*100,
    nrow(nlsy_unique_control), paste0(round(describe(nlsy_unique_control$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_control$education))["higher"]),4)*100), 
    c(nrow(pair_unique_event), paste0(round(describe(pair_unique_event$age)$mean, 2), " (", 
                               round(describe(pair_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_event$education))["higher"]),4)*100,
    nrow(pair_unique_control), paste0(round(describe(pair_unique_control$age)$mean, 2), " (", 
                               round(describe(pair_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_control$education))["higher"]),4)*100), 
    c(nrow(soep_unique_event), paste0(round(describe(soep_unique_event$age)$mean, 2), " (", 
                               round(describe(soep_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_event$education))["higher"]),4)*100,
    nrow(soep_unique_control), paste0(round(describe(soep_unique_control$age)$mean, 2), " (", 
                               round(describe(soep_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_control$education))["higher"]),4)*100)
  ))

row.names(desc) <- c("HILDA", "LISS", "NLSY", "PAIRFAM", "SOEP")

kable(desc
      , caption="**Sample characteristics for event graduation**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = rep(c("N", "Mean age (SD)", "% Female", "% Higher education"), 2)) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  add_header_above(c(" " = 1, "Event group" = 4, "Control group" = 4))
Sample characteristics for event graduation
Event group
Control group
N Mean age (SD) % Female % Higher education N Mean age (SD) % Female % Higher education
HILDA 3890 23.56 (9.58) 59.69 25.66 30611 37.64 (18.42) 50.44 44.65
LISS 2345 27.07 (15.4) 56.2 38.09 14137 47.65 (16.8) 53.69 45.57
NLSY 4081 16.58 (3) 53.37 4589 21.32 (4.57) 44.87
PAIRFAM 307 23.29 (6.8) 45.93 9.73 12091 25.93 (8.37) 51.53 28.62
SOEP 3744 19.18 (5.49) 52.4 4.57 90163 40.02 (17.19) 51.26 29.1

New Employment

hilda_unique_event <- jobbeg_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(jobbeg_control == 1)
hilda_unique_control <- jobbeg_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(jobbeg_control == 0)
hrs_unique_event <- jobbeg_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(jobbeg_control == 1)
hrs_unique_control <- jobbeg_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(jobbeg_control == 0)
liss_unique_event <- jobbeg_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(jobbeg_control == 1)
liss_unique_control <- jobbeg_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(jobbeg_control == 0)
pair_unique_event <- jobbeg_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(jobbeg_control == 1)
pair_unique_control <- jobbeg_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(jobbeg_control == 0)
soep_unique_event <- jobbeg_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(jobbeg_control == 1)
soep_unique_control <- jobbeg_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(jobbeg_control == 0)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique_event), paste0(round(describe(hilda_unique_event$age)$mean, 2), " (", 
                               round(describe(hilda_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_event$education))["higher"]),4)*100,
    nrow(hilda_unique_control), paste0(round(describe(hilda_unique_control$age)$mean, 2), " (", 
                               round(describe(hilda_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_control$education))["higher"]),4)*100), 
     c(nrow(hrs_unique_event), paste0(round(describe(hrs_unique_event$age)$mean, 2), " (", 
                               round(describe(hrs_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_event$education))["higher"]),4)*100,
    nrow(hrs_unique_control), paste0(round(describe(hrs_unique_control$age)$mean, 2), " (", 
                               round(describe(hrs_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_control$education))["higher"]),4)*100), 
    c(nrow(liss_unique_event), paste0(round(describe(liss_unique_event$age)$mean, 2), " (", 
                               round(describe(liss_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_event$education))["higher"]),4)*100,
    nrow(liss_unique_control), paste0(round(describe(liss_unique_control$age)$mean, 2), " (", 
                               round(describe(liss_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_control$education))["higher"]),4)*100), 
    
    c(nrow(pair_unique_event), paste0(round(describe(pair_unique_event$age)$mean, 2), " (", 
                               round(describe(pair_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_event$education))["higher"]),4)*100,
    nrow(pair_unique_control), paste0(round(describe(pair_unique_control$age)$mean, 2), " (", 
                               round(describe(pair_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_control$education))["higher"]),4)*100), 
    c(nrow(soep_unique_event), paste0(round(describe(soep_unique_event$age)$mean, 2), " (", 
                               round(describe(soep_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_event$education))["higher"]),4)*100,
    nrow(soep_unique_control), paste0(round(describe(soep_unique_control$age)$mean, 2), " (", 
                               round(describe(soep_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_control$education))["higher"]),4)*100)
  ))

row.names(desc) <- c("HILDA", "HRS", "LISS", "PAIRFAM", "SOEP")

kable(desc
      , caption="**Sample characteristics for event new employment**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = rep(c("N", "Mean age (SD)", "% Female", "% Higher education"), 2)) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  add_header_above(c(" " = 1, "Event group" = 4, "Control group" = 4))
Sample characteristics for event new employment
Event group
Control group
N Mean age (SD) % Female % Higher education N Mean age (SD) % Female % Higher education
HILDA 10135 28.03 (11.56) 52.3 43.06 24366 39.39 (19.38) 51.15 42.28
HRS 2345 62.08 (9.36) 56.42 53.9 21501 66.94 (11.8) 58.56 46.96
LISS 2652 30.92 (13.43) 58.9 49.28 13830 47.36 (17.67) 53.12 43.58
PAIRFAM 4043 23.8 (8.14) 56.34 29.9 8355 26.86 (8.25) 48.99 27.55
SOEP 14188 29.99 (12.22) 62.31 26.68 79719 40.82 (17.63) 49.34 28.37

Unemployment

hilda_unique_event <- unemploy_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 1)
hilda_unique_control <- unemploy_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 0)
hrs_unique_event <- unemploy_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 1)
hrs_unique_control <- unemploy_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 0)
liss_unique_event <- unemploy_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 1)
liss_unique_control <- unemploy_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 0)
nlsy_unique_event <- unemploy_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 1)
nlsy_unique_control <- unemploy_nlsy %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 0)
pair_unique_event <- unemploy_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 1)
pair_unique_control <- unemploy_pair %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 0)
soep_unique_event <- unemploy_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 1)
soep_unique_control <- unemploy_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(unemploy_control == 0)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique_event), paste0(round(describe(hilda_unique_event$age)$mean, 2), " (", 
                               round(describe(hilda_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_event$education))["higher"]),4)*100,
    nrow(hilda_unique_control), paste0(round(describe(hilda_unique_control$age)$mean, 2), " (", 
                               round(describe(hilda_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_control$education))["higher"]),4)*100), 
     c(nrow(hrs_unique_event), paste0(round(describe(hrs_unique_event$age)$mean, 2), " (", 
                               round(describe(hrs_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_event$education))["higher"]),4)*100,
    nrow(hrs_unique_control), paste0(round(describe(hrs_unique_control$age)$mean, 2), " (", 
                               round(describe(hrs_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_control$education))["higher"]),4)*100), 
    c(nrow(liss_unique_event), paste0(round(describe(liss_unique_event$age)$mean, 2), " (", 
                               round(describe(liss_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_event$education))["higher"]),4)*100,
    nrow(liss_unique_control), paste0(round(describe(liss_unique_control$age)$mean, 2), " (", 
                               round(describe(liss_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_control$education))["higher"]),4)*100), 
   
    c(nrow(nlsy_unique_event), paste0(round(describe(nlsy_unique_event$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_event$education))["higher"]),4)*100,
    nrow(nlsy_unique_control), paste0(round(describe(nlsy_unique_control$age)$mean, 2), " (", 
                               round(describe(nlsy_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(nlsy_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(nlsy_unique_control$education))["higher"]),4)*100), 
    c(nrow(pair_unique_event), paste0(round(describe(pair_unique_event$age)$mean, 2), " (", 
                               round(describe(pair_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_event$education))["higher"]),4)*100,
    nrow(pair_unique_control), paste0(round(describe(pair_unique_control$age)$mean, 2), " (", 
                               round(describe(pair_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(pair_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(pair_unique_control$education))["higher"]),4)*100), 
    c(nrow(soep_unique_event), paste0(round(describe(soep_unique_event$age)$mean, 2), " (", 
                               round(describe(soep_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_event$education))["higher"]),4)*100,
    nrow(soep_unique_control), paste0(round(describe(soep_unique_control$age)$mean, 2), " (", 
                               round(describe(soep_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_control$education))["higher"]),4)*100)
  ))

row.names(desc) <- c("HILDA", "HRS", "LISS", "NLSY", "PAIRFAM", "SOEP")

kable(desc
      , caption="**Sample characteristics for event unemployment**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = rep(c("N", "Mean age (SD)", "% Female", "% Higher education"), 2)) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  add_header_above(c(" " = 1, "Event group" = 4, "Control group" = 4))
Sample characteristics for event unemployment
Event group
Control group
N Mean age (SD) % Female % Higher education N Mean age (SD) % Female % Higher education
HILDA 3920 31.46 (13.11) 44.49 43.67 15565 31.63 (13.84) 52.09 47.73
HRS 840 58.76 (8.05) 55 56.02 10944 60.74 (8.92) 54.7 58.26
LISS 1551 35.86 (13.86) 54.03 47.26 10293 38.2 (14.38) 51.96 48.18
NLSY 1122 18.14 (3.67) 60.07 5228 19.21 (4.4) 48.74
PAIRFAM 1410 23.65 (7.9) 49.43 19.12 7419 25.42 (8.61) 51.14 32.78
SOEP 5536 30.01 (12.17) 54.57 20.4 32921 35.91 (13.23) 48.08 37.94

Retirement

hilda_unique_event <- retire_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(retire_control == 1)
hilda_unique_control <- retire_hilda %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(retire_control == 0)
hrs_unique_event <- retire_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(retire_control == 1)
hrs_unique_control <- retire_hrs %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(retire_control == 0)
liss_unique_event <- retire_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(retire_control == 1)
liss_unique_control <- retire_liss %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(retire_control == 0)
midus_unique_event <- retire_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(retire_control == 1)
midus_unique_control <- retire_midus %>% arrange(wave) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(retire_control == 0)
soep_unique_event <- retire_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(retire_control == 1)
soep_unique_control <- retire_soep %>% arrange(syear) %>% filter(duplicated(ID_pers) == FALSE) %>% filter(retire_control == 0)

desc <- as.data.frame(rbind(
  c(nrow(hilda_unique_event), paste0(round(describe(hilda_unique_event$age)$mean, 2), " (", 
                               round(describe(hilda_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_event$education))["higher"]),4)*100,
    nrow(hilda_unique_control), paste0(round(describe(hilda_unique_control$age)$mean, 2), " (", 
                               round(describe(hilda_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hilda_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hilda_unique_control$education))["higher"]),4)*100), 
     c(nrow(hrs_unique_event), paste0(round(describe(hrs_unique_event$age)$mean, 2), " (", 
                               round(describe(hrs_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_event$education))["higher"]),4)*100,
    nrow(hrs_unique_control), paste0(round(describe(hrs_unique_control$age)$mean, 2), " (", 
                               round(describe(hrs_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(hrs_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(hrs_unique_control$education))["higher"]),4)*100), 
    c(nrow(liss_unique_event), paste0(round(describe(liss_unique_event$age)$mean, 2), " (", 
                               round(describe(liss_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_event$education))["higher"]),4)*100,
    nrow(liss_unique_control), paste0(round(describe(liss_unique_control$age)$mean, 2), " (", 
                               round(describe(liss_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(liss_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(liss_unique_control$education))["higher"]),4)*100), 
    c(nrow(midus_unique_event), paste0(round(describe(midus_unique_event$age)$mean, 2), " (", 
                               round(describe(midus_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_event$education))["higher"]),4)*100,
    nrow(midus_unique_control), paste0(round(describe(midus_unique_control$age)$mean, 2), " (", 
                               round(describe(midus_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(midus_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(midus_unique_control$education))["higher"]),4)*100), 

    c(nrow(soep_unique_event), paste0(round(describe(soep_unique_event$age)$mean, 2), " (", 
                               round(describe(soep_unique_event$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_event$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_event$education))["higher"]),4)*100,
    nrow(soep_unique_control), paste0(round(describe(soep_unique_control$age)$mean, 2), " (", 
                               round(describe(soep_unique_control$age)$sd, 2), ")"), 
    round(as.numeric(prop.table(table(soep_unique_control$gender))["Female"]),4)*100, 
    round(as.numeric(prop.table(table(soep_unique_control$education))["higher"]),4)*100)
  ))

row.names(desc) <- c("HILDA", "HRS", "LISS", "MIDUS", "SOEP")

kable(desc
      , caption="**Sample characteristics for event retirement**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = rep(c("N", "Mean age (SD)", "% Female", "% Higher education"), 2)) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  add_header_above(c(" " = 1, "Event group" = 4, "Control group" = 4))
Sample characteristics for event retirement
Event group
Control group
N Mean age (SD) % Female % Higher education N Mean age (SD) % Female % Higher education
HILDA 3249 51.14 (12.4) 51.46 50.72 17423 28.89 (12.14) 50.4 44.76
HRS 5298 61.95 (7.68) 59.23 54.11 5506 55.61 (7.26) 59.63 57.86
LISS 1269 60.53 (6.91) 50.51 40.5 11132 36.28 (13.42) 52.93 48.08
MIDUS 1088 53.7 (7.36) 54.69 40.61 4184 41.56 (10.67) 49.31 42.46
SOEP 3781 46.83 (10.4) 52.18 35.25 51130 39.13 (17.35) 51.91 30.9

Outcome Variables

HILDA

Table

pers_hilda <- long_hilda %>% ungroup() %>% dplyr::select(agree, consc, emost, extra,
         open, ls) %>% describe() %>% dplyr::select(n, mean, sd, min, max)

row.names(pers_hilda) <- c("Agreeableness", "Conscientiousness", "Emotional stability", 
                           "Extraversion", "Openness", "Life satisfaction")

kable(pers_hilda
      , caption="**Descriptive statistics of our outcome variables across individuals and assessments**"
      , escape=FALSE
      , label = NA
      , digits = 2
      , col.names = c("*N*", "*M*", "*SD*", "*Min*", "*Max*")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left")
Descriptive statistics of our outcome variables across individuals and assessments
N M SD Min Max
Agreeableness 68162 5.17 0.92 1 7
Conscientiousness 67517 5.09 1.03 1 7
Emotional stability 67577 5.20 1.09 1 7
Extraversion 67292 4.42 1.08 1 7
Openness 67251 4.20 1.07 1 7
Life satisfaction 337416 7.92 1.47 0 10

Distribution

pers_hilda <- long_hilda %>% ungroup() %>% 
  select(ID_pers, extra.z, consc.z, agree.z, 
         emost.z, open.z, ls.z) %>% 
  pivot_longer(cols = -ID_pers)

pers_hilda$name <- factor(pers_hilda$name, levels = c("se.z", "ls.z", "open.z", "extra.z",
                                                      "emost.z","consc.z", "agree.z"),
                          labels = c("Self-esteem", "Life satisfaction","Openness", 
                                     "Extraversion", "Emotional stability", 
                                    "Conscientiousness",  "Agreeableness"), ordered = TRUE)

ggplot(data = pers_hilda, aes(y = name, x = value, fill = name)) +
  geom_density_ridges(scale = 0.9) +
  labs(y = "Trait", x = "Score") +
  theme_pub() +
  theme(legend.position = "none")

HRS

Table

pers_hrs <- long_hrs %>% ungroup() %>% dplyr::select(agree, consc, emost, extra,
         open, ls) %>% describe() %>% dplyr::select(n, mean, sd, min, max)

row.names(pers_hrs) <- c("Agreeableness", "Conscientiousness", "Emotional stability", 
                           "Extraversion", "Openness", "Life satisfaction")

kable(pers_hrs
      , caption="**Descriptive statistics of our outcome variables across individuals and assessments**"
      , escape=FALSE
      , label = NA
      , digits = 2
      , col.names = c("*N*", "*M*", "*SD*", "*Min*", "*Max*")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left")
Descriptive statistics of our outcome variables across individuals and assessments
N M SD Min Max
Agreeableness 52152 3.53 0.48 1 4
Conscientiousness 51521 3.36 0.49 1 4
Emotional stability 52578 2.99 0.62 1 4
Extraversion 52089 3.06 0.63 1 4
Openness 50538 2.93 0.57 1 4
Life satisfaction 45367 4.93 1.53 1 7

Distribution

pers_hrs <- long_hrs %>% ungroup() %>% 
  select(ID_pers, extra.z, consc.z, agree.z, 
         emost.z, open.z, ls.z) %>% 
  pivot_longer(cols = -ID_pers)

pers_hrs$name <- factor(pers_hrs$name, levels = c("se.z", "ls.z", "open.z", "extra.z",
                                                      "emost.z","consc.z", "agree.z"),
                          labels = c("Self-esteem", "Life satisfaction","Openness", 
                                     "Extraversion", "Emotional stability", 
                                    "Conscientiousness",  "Agreeableness"), ordered = TRUE)

ggplot(data = pers_hrs, aes(y = name, x = value, fill = name)) +
  geom_density_ridges(scale = 0.9) +
  labs(y = "Trait", x = "Score") +
  theme_pub() +
  theme(legend.position = "none")

LISS

Table

pers_liss <- long_liss %>% ungroup() %>% dplyr::select(agree, consc, emost, extra,
         open, ls, se) %>% describe() %>% dplyr::select(n, mean, sd, min, max)

row.names(pers_liss) <- c("Agreeableness", "Conscientiousness", "Emotional stability", 
                           "Extraversion", "Openness", "Life satisfaction", "Self-esteem")

kable(pers_liss
      , caption="**Descriptive statistics of our outcome variables across individuals and assessments**"
      , escape=FALSE
      , label = NA
      , digits = 2
      , col.names = c("*N*", "*M*", "*SD*", "*Min*", "*Max*")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left")
Descriptive statistics of our outcome variables across individuals and assessments
N M SD Min Max
Agreeableness 66896 3.86 0.51 1.2 5
Conscientiousness 66896 3.71 0.53 1.1 5
Emotional stability 66896 3.45 0.70 1.0 5
Extraversion 66896 3.24 0.66 1.0 5
Openness 66896 3.49 0.50 1.0 5
Life satisfaction 86800 5.06 1.11 1.0 7
Self-esteem 66830 5.54 1.02 1.0 7

Distribution

pers_liss <- long_liss %>% ungroup() %>% 
  select(ID_pers, extra.z, consc.z, agree.z, 
         emost.z, open.z, ls.z, se.z) %>% 
  pivot_longer(cols = -ID_pers)

pers_liss$name <- factor(pers_liss$name, levels = c("se.z", "ls.z", "open.z", "extra.z",
                                                      "emost.z","consc.z", "agree.z"),
                          labels = c("Self-esteem", "Life satisfaction","Openness", 
                                     "Extraversion", "Emotional stability", 
                                    "Conscientiousness",  "Agreeableness"), ordered = TRUE)

ggplot(data = pers_liss, aes(y = name, x = value, fill = name)) +
  geom_density_ridges(scale = 0.9) +
  labs(y = "Trait", x = "Score") +
  theme_pub() +
  theme(legend.position = "none")

MIDUS

Table

pers_midus <- long_midus %>% ungroup() %>% dplyr::select(agree, consc, emost, extra,
         open, ls, se) %>% describe() %>% dplyr::select(n, mean, sd, min, max)

row.names(pers_midus) <- c("Agreeableness", "Conscientiousness", "Emotional stability", 
                           "Extraversion", "Openness", "Life satisfaction", "Self-esteem")

kable(pers_midus
      , caption="**Descriptive statistics of our outcome variables across individuals and assessments**"
      , escape=FALSE
      , label = NA
      , digits = 2
      , col.names = c("*N*", "*M*", "*SD*", "*Min*", "*Max*")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left")
Descriptive statistics of our outcome variables across individuals and assessments
N M SD Min Max
Agreeableness 12966 3.49 0.48 1.00 4
Conscientiousness 12985 3.44 0.45 1.00 4
Emotional stability 12934 2.85 0.65 1.00 4
Extraversion 12970 3.03 0.63 1.00 4
Openness 12807 2.96 0.54 1.00 4
Life satisfaction 13057 7.83 1.59 0.00 10
Self-esteem 6759 5.39 1.04 1.57 7

Distribution

pers_midus <- long_midus %>% ungroup() %>% 
  select(ID_pers, extra.z, consc.z, agree.z, 
         emost.z, open.z, ls.z, se.z) %>% 
  pivot_longer(cols = -ID_pers)

pers_midus$name <- factor(pers_midus$name, levels = c("se.z", "ls.z", "open.z", "extra.z",
                                                      "emost.z","consc.z", "agree.z"),
                          labels = c("Self-esteem", "Life satisfaction","Openness", 
                                     "Extraversion", "Emotional stability", 
                                    "Conscientiousness",  "Agreeableness"), ordered = TRUE)

ggplot(data = pers_midus, aes(y = name, x = value, fill = name)) +
  geom_density_ridges(scale = 0.9) +
  labs(y = "Trait", x = "Score") +
  theme_pub() +
  theme(legend.position = "none")

NLSY

Table

pers_nlsy <- long_nlsy %>% ungroup() %>% dplyr::select(agree, consc, emost, extra,
         open, ls, se) %>% describe() %>% dplyr::select(n, mean, sd, min, max)

row.names(pers_nlsy) <- c("Agreeableness", "Conscientiousness", "Emotional stability", 
                           "Extraversion", "Openness", "Life satisfaction", "Self-esteem")

kable(pers_nlsy
      , caption="**Descriptive statistics of our outcome variables across individuals and assessments**"
      , escape=FALSE
      , label = NA
      , digits = 2
      , col.names = c("*N*", "*M*", "*SD*", "*Min*", "*Max*")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left")
Descriptive statistics of our outcome variables across individuals and assessments
N M SD Min Max
Agreeableness 23152 5.04 1.18 1 7
Conscientiousness 23479 5.69 1.19 1 7
Emotional stability 23468 5.06 1.33 1 7
Extraversion 23347 4.61 1.40 1 7
Openness 23439 5.43 1.18 1 7
Life satisfaction 15229 4.09 0.91 1 5
Self-esteem 27525 3.15 0.51 1 4

Distribution

pers_nlsy <- long_nlsy %>% ungroup() %>% 
  select(ID_pers, extra.z, consc.z, agree.z, 
         emost.z, open.z, ls.z, se.z) %>% 
  pivot_longer(cols = -ID_pers)

pers_nlsy$name <- factor(pers_nlsy$name, levels = c("se.z", "ls.z", "open.z", "extra.z",
                                                      "emost.z","consc.z", "agree.z"),
                          labels = c("Self-esteem", "Life satisfaction","Openness", 
                                     "Extraversion", "Emotional stability", 
                                    "Conscientiousness",  "Agreeableness"), ordered = TRUE)

ggplot(data = pers_nlsy, aes(y = name, x = value, fill = name)) +
  geom_density_ridges(scale = 0.9) +
  labs(y = "Trait", x = "Score") +
  theme_pub() +
  theme(legend.position = "none")

PAIRFAM

Table

pers_pair <- long_pair %>% ungroup() %>% dplyr::select(agree, consc, emost, extra,
         open, ls, se) %>% describe() %>% dplyr::select(n, mean, sd, min, max)

row.names(pers_pair) <- c("Agreeableness", "Conscientiousness", "Emotional stability", 
                           "Extraversion", "Openness", "Life satisfaction", "Self-esteem")

kable(pers_pair
      , caption="**Descriptive statistics of our outcome variables across individuals and assessments**"
      , escape=FALSE
      , label = NA
      , digits = 2
      , col.names = c("*N*", "*M*", "*SD*", "*Min*", "*Max*")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left")
Descriptive statistics of our outcome variables across individuals and assessments
N M SD Min Max
Agreeableness 18191 3.25 0.72 1 5
Conscientiousness 18345 3.79 0.66 1 5
Emotional stability 18368 3.30 0.80 1 5
Extraversion 18203 3.53 0.82 1 5
Openness 18131 3.64 0.69 1 5
Life satisfaction 66622 7.58 1.68 0 10
Self-esteem 53739 3.89 0.84 1 5

Distribution

pers_pair <- long_pair %>% ungroup() %>% 
  select(ID_pers, extra.z, consc.z, agree.z, 
         emost.z, open.z, ls.z, se.z) %>% 
  pivot_longer(cols = -ID_pers)

pers_pair$name <- factor(pers_pair$name, levels = c("se.z", "ls.z", "open.z", "extra.z",
                                                      "emost.z","consc.z", "agree.z"),
                          labels = c("Self-esteem", "Life satisfaction","Openness", 
                                     "Extraversion", "Emotional stability", 
                                    "Conscientiousness",  "Agreeableness"), ordered = TRUE)

ggplot(data = pers_pair, aes(y = name, x = value, fill = name)) +
  geom_density_ridges(scale = 0.9) +
  labs(y = "Trait", x = "Score") +
  theme_pub() +
  theme(legend.position = "none")

SOEP

Table

pers_soep <- long_soep %>% ungroup() %>% dplyr::select(agree, consc, emost, extra,
         open, ls, se) %>% describe() %>% dplyr::select(n, mean, sd, min, max)

row.names(pers_soep) <- c("Agreeableness", "Conscientiousness", "Emotional stability", 
                           "Extraversion", "Openness", "Life satisfaction", "Self-esteem")

kable(pers_soep
      , caption="**Descriptive statistics of our outcome variables across individuals and assessments**"
      , escape=FALSE
      , label = NA
      , digits = 2
      , col.names = c("*N*", "*M*", "*SD*", "*Min*", "*Max*")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left")
Descriptive statistics of our outcome variables across individuals and assessments
N M SD Min Max
Agreeableness 120074 5.40 0.97 1 7
Conscientiousness 119746 5.81 0.94 1 7
Emotional stability 120129 4.21 1.24 1 7
Extraversion 120070 4.87 1.14 1 7
Openness 119287 4.56 1.20 1 7
Life satisfaction 731744 7.15 1.79 0 10
Self-esteem 71759 5.62 1.29 1 7

Distribution

pers_soep <- long_soep %>% ungroup() %>% 
  select(ID_pers, extra.z, consc.z, agree.z, 
         emost.z, open.z, ls.z, se.z) %>% 
  pivot_longer(cols = -ID_pers)

pers_soep$name <- factor(pers_soep$name, levels = c("se.z", "ls.z", "open.z", "extra.z",
                                                      "emost.z","consc.z", "agree.z"),
                          labels = c("Self-esteem", "Life satisfaction","Openness", 
                                     "Extraversion", "Emotional stability", 
                                    "Conscientiousness",  "Agreeableness"), ordered = TRUE)

ggplot(data = pers_soep, aes(y = name, x = value, fill = name)) +
  geom_density_ridges(scale = 0.9) +
  labs(y = "Trait", x = "Score") +
  theme_pub() +
  theme(legend.position = "none")

Section 2: Model With Five Dummies

We used fixed-effect regression models to examine event-related changes in the seven outcome variables. With fixed-effect models, a dummy variable for each person is included in the model that accounts for stable between-person differences. Standardized Big Five trait scores, self-esteem, or life satisfaction for person i at time point t severed as dependent variables . As predictors, we included five mutually exclusive dummy variables that quantified event-related changes in the outcome variables at different time points before and after the event occurrence:

  • D-2Y = 1 for assessments that took place up to 2 years prior to the occurrence of the target event
  • D-1Y = 1 for assessments that took place up to 1 year prior to the occurrence of the target event
  • D+1Y = 1 for assessments that took place up to 1 year after the occurrence of the target event
  • D+2Y = 1 for assessments that took place up to 2 years after the occurrence of the target event
  • D>+2Y = 1 for assessments that took place more than 2 years after the occurrence of the target event.
## Results across datasets
res_ma_5dumm_long <- res_ma_5dumm %>% 
  pivot_longer(-c("event", "trait", "DIFFR2_avg"),
               names_sep = "_",
               names_to = c("Effect", "Names")) %>% 
  pivot_wider(names_from = ("Names"), 
              values_from = "value")

## Results across datasets and events
res_ma_event_5dumm_long <- res_ma_event_5dumm %>% 
  pivot_longer(-c("EventType", "trait", "DIFFR2_avg"),
               names_sep = "_",
               names_to = c("Effect", "Names")) %>% 
  pivot_wider(names_from = ("Names"), 
              values_from = "value")

New Relationship

relbeg_res_ma_5dumm <- filter(res_ma_5dumm_long, event == "New relationship")

relbeg_res_ma_5dumm <- dplyr::select(relbeg_res_ma_5dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the five event-related dummy variables. These effects describe within-person changes in our outcome variables between assessments at a certain time point before/after the event occurrence and assessments unrelated to the event occurrence. Significant effects (p < .01) are depicted in bold.

relbeg_res_ma_5dumm_dummies <- filter(relbeg_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2") %>% 
  dplyr::select(-DIFFR2_avg)

relbeg_res_ma_5dumm_dummies$Effect <- recode(relbeg_res_ma_5dumm_dummies$Effect, 
                                             "DM2" = "2 years before event",
                                             "DM1" = "1 year before event",
                                             "DP1" = "1 year after event",
                                             "DP2" = "2 years after event",
                                             "DA2" = "> 2 years after event")

## Create table
kable(relbeg_res_ma_5dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(relbeg_res_ma_5dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 2 years before event 7 -0.021 0.019 -1.120 0.263 -0.069 0.027
Agreeableness 1 year before event 7 0.020 0.042 0.468 0.639 -0.090 0.129
Agreeableness 1 year after event 7 0.042 0.039 1.056 0.291 -0.060 0.143
Agreeableness 2 years after event 7 0.011 0.015 0.688 0.492 -0.029 0.050
Agreeableness > 2 years after event 7 0.001 0.003 0.190 0.849 -0.007 0.008
Conscientiousness 2 years before event 7 0.001 0.024 0.047 0.963 -0.062 0.064
Conscientiousness 1 year before event 7 -0.028 0.020 -1.392 0.164 -0.080 0.024
Conscientiousness 1 year after event 7 0.001 0.022 0.029 0.977 -0.055 0.056
Conscientiousness 2 years after event 7 0.025 0.015 1.679 0.093 -0.013 0.063
Conscientiousness > 2 years after event 7 0.006 0.003 2.096 0.036 -0.001 0.013
Extraversion 2 years before event 7 0.019 0.013 1.464 0.143 -0.014 0.051
Extraversion 1 year before event 7 0.036 0.013 2.872 0.004 0.004 0.069
Extraversion 1 year after event 7 0.012 0.014 0.867 0.386 -0.024 0.047
Extraversion 2 years after event 7 0.018 0.020 0.906 0.365 -0.033 0.068
Extraversion > 2 years after event 7 -0.001 0.002 -0.760 0.447 -0.005 0.003
Emotional stability 2 years before event 7 -0.001 0.018 -0.051 0.960 -0.047 0.045
Emotional stability 1 year before event 7 0.010 0.015 0.677 0.499 -0.029 0.050
Emotional stability 1 year after event 7 0.015 0.028 0.523 0.601 -0.057 0.087
Emotional stability 2 years after event 7 0.022 0.015 1.495 0.135 -0.016 0.060
Emotional stability > 2 years after event 7 0.002 0.002 1.031 0.303 -0.003 0.006
Openness 2 years before event 7 0.030 0.019 1.624 0.104 -0.018 0.078
Openness 1 year before event 7 0.060 0.025 2.430 0.015 -0.004 0.123
Openness 1 year after event 7 0.007 0.025 0.290 0.772 -0.056 0.070
Openness 2 years after event 7 -0.007 0.017 -0.419 0.675 -0.052 0.037
Openness > 2 years after event 7 0.002 0.003 0.897 0.370 -0.004 0.009
Life satisfaction 2 years before event 7 -0.060 0.008 -7.013 0.000 -0.081 -0.038
Life satisfaction 1 year before event 7 -0.041 0.038 -1.074 0.283 -0.139 0.057
Life satisfaction 1 year after event 7 0.116 0.064 1.802 0.072 -0.050 0.282
Life satisfaction 2 years after event 7 0.068 0.044 1.539 0.124 -0.046 0.182
Life satisfaction > 2 years after event 7 0.018 0.006 3.119 0.002 0.003 0.033
Self-esteem 2 years before event 5 0.012 0.055 0.224 0.822 -0.130 0.155
Self-esteem 1 year before event 5 0.045 0.060 0.748 0.455 -0.110 0.200
Self-esteem 1 year after event 5 0.061 0.025 2.424 0.015 -0.004 0.126
Self-esteem 2 years after event 5 0.061 0.016 3.898 0.000 0.021 0.101
Self-esteem > 2 years after event 5 0.008 0.004 2.002 0.045 -0.002 0.019

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the six linear contrasts that we used to examine personality changes occurring from specific pre-event to specific post-event assessments. Significant effects (p < .01) are depicted in bold.

relbeg_res_ma_5dumm_contrast <- filter(relbeg_res_ma_5dumm, Effect == "CONTRM2P1" |
                                       Effect == "CONTRM2P2" | Effect == "CONTRM2A2" |
                                       Effect == "CONTRM1P1" | Effect == "CONTRM1P2" |
                                       Effect == "CONTRM1A2") %>% 
  dplyr::select(-DIFFR2_avg)

relbeg_res_ma_5dumm_contrast$Effect <- recode(relbeg_res_ma_5dumm_contrast$Effect, 
                                             "CONTRM2P1" = "1Y After - 2Y Before",
                                             "CONTRM2P2" = "2Y After - 2Y Before",
                                             "CONTRM2A2" = ">2Y After - 2Y Before",
                                             "CONTRM1P1" = "1Y After - 1Y Before",
                                             "CONTRM1P2" = "2Y After - 1Y Before",
                                             "CONTRM1A2" = ">2Y After - 1Y Before")

## Create table
kable(relbeg_res_ma_5dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(relbeg_res_ma_5dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 1Y After - 2Y Before 7 0.050 0.068 0.734 0.463 -0.126 0.226
Agreeableness 2Y After - 2Y Before 7 0.034 0.019 1.748 0.080 -0.016 0.084
Agreeableness >2Y After - 2Y Before 7 0.022 0.014 1.560 0.119 -0.014 0.058
Agreeableness 1Y After - 1Y Before 7 0.021 0.069 0.308 0.758 -0.156 0.198
Agreeableness 2Y After - 1Y Before 7 0.001 0.044 0.023 0.981 -0.111 0.113
Agreeableness >2Y After - 1Y Before 7 -0.019 0.039 -0.481 0.630 -0.118 0.081
Conscientiousness 1Y After - 2Y Before 7 0.022 0.018 1.182 0.237 -0.026 0.069
Conscientiousness 2Y After - 2Y Before 7 0.021 0.028 0.756 0.450 -0.051 0.094
Conscientiousness >2Y After - 2Y Before 7 0.006 0.025 0.242 0.809 -0.058 0.070
Conscientiousness 1Y After - 1Y Before 7 0.023 0.018 1.271 0.204 -0.023 0.069
Conscientiousness 2Y After - 1Y Before 7 0.046 0.023 1.995 0.046 -0.013 0.105
Conscientiousness >2Y After - 1Y Before 7 0.038 0.021 1.815 0.070 -0.016 0.092
Extraversion 1Y After - 2Y Before 7 -0.005 0.019 -0.288 0.774 -0.053 0.043
Extraversion 2Y After - 2Y Before 7 0.000 0.022 0.003 0.998 -0.058 0.058
Extraversion >2Y After - 2Y Before 7 -0.019 0.012 -1.540 0.124 -0.051 0.013
Extraversion 1Y After - 1Y Before 7 -0.019 0.016 -1.186 0.236 -0.061 0.023
Extraversion 2Y After - 1Y Before 7 -0.022 0.025 -0.870 0.385 -0.087 0.043
Extraversion >2Y After - 1Y Before 7 -0.037 0.012 -3.039 0.002 -0.068 -0.006
Emotional stability 1Y After - 2Y Before 7 0.023 0.029 0.798 0.425 -0.051 0.097
Emotional stability 2Y After - 2Y Before 7 0.020 0.018 1.092 0.275 -0.027 0.066
Emotional stability >2Y After - 2Y Before 7 0.006 0.018 0.307 0.759 -0.042 0.053
Emotional stability 1Y After - 1Y Before 7 0.013 0.025 0.534 0.593 -0.051 0.078
Emotional stability 2Y After - 1Y Before 7 0.008 0.017 0.458 0.647 -0.036 0.051
Emotional stability >2Y After - 1Y Before 7 -0.005 0.016 -0.302 0.763 -0.047 0.037
Openness 1Y After - 2Y Before 7 -0.029 0.027 -1.053 0.292 -0.099 0.041
Openness 2Y After - 2Y Before 7 -0.032 0.030 -1.064 0.287 -0.109 0.045
Openness >2Y After - 2Y Before 7 -0.028 0.018 -1.515 0.130 -0.076 0.020
Openness 1Y After - 1Y Before 7 -0.049 0.019 -2.523 0.012 -0.099 0.001
Openness 2Y After - 1Y Before 7 -0.064 0.033 -1.940 0.052 -0.150 0.021
Openness >2Y After - 1Y Before 7 -0.057 0.024 -2.367 0.018 -0.119 0.005
Life satisfaction 1Y After - 2Y Before 7 0.150 0.060 2.524 0.012 -0.003 0.304
Life satisfaction 2Y After - 2Y Before 7 0.125 0.036 3.532 0.000 0.034 0.217
Life satisfaction >2Y After - 2Y Before 7 0.087 0.008 10.654 0.000 0.066 0.108
Life satisfaction 1Y After - 1Y Before 7 0.126 0.032 3.936 0.000 0.044 0.209
Life satisfaction 2Y After - 1Y Before 7 0.131 0.018 7.109 0.000 0.084 0.179
Life satisfaction >2Y After - 1Y Before 7 0.063 0.036 1.786 0.074 -0.028 0.155
Self-esteem 1Y After - 2Y Before 5 0.097 0.018 5.476 0.000 0.051 0.142
Self-esteem 2Y After - 2Y Before 5 0.087 0.026 3.331 0.001 0.020 0.155
Self-esteem >2Y After - 2Y Before 5 -0.022 0.072 -0.308 0.758 -0.207 0.163
Self-esteem 1Y After - 1Y Before 5 0.081 0.019 4.368 0.000 0.033 0.129
Self-esteem 2Y After - 1Y Before 5 0.072 0.023 3.152 0.002 0.013 0.130
Self-esteem >2Y After - 1Y Before 5 -0.051 0.073 -0.691 0.490 -0.240 0.139

Graph

This graph illustrates the meta-analytic estimates of the five event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the five event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
relbeg_res_ma_5dumm_dummies <- filter(relbeg_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")

## Create variable on significance
relbeg_res_ma_5dumm_dummies$sig <- ifelse(relbeg_res_ma_5dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

relbeg_res_ma_5dumm_dummies$trait <- factor(relbeg_res_ma_5dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
relbeg_res_ma_5dumm_dummies$Effect <- factor(relbeg_res_ma_5dumm_dummies$Effect, 
                                             levels = c("DM2", "DM1", "DP1", "DP2", "DA2"), 
                                             labels = c("-2 Years", "-1 Year", "+1 Year",
                                                        "+2 Years", ">2 Years"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- relbeg_res_ma_5dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
relbeg_res_ma_5dumm_dummies$ID <- 1:nrow(relbeg_res_ma_5dumm_dummies)

plot <- ggplot(data = relbeg_res_ma_5dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 2.5, y = 0.28), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 2.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 4.5, y = 0.28), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Marriage

marriage_res_ma_5dumm <- filter(res_ma_5dumm_long, event == "Marriage")

marriage_res_ma_5dumm <- dplyr::select(marriage_res_ma_5dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the five event-related dummy variables. These effects describe within-person changes in our outcome variables between assessments at a certain time point before/after the event occurrence and assessments unrelated to the event occurrence. Significant effects (p < .01) are depicted in bold.

marriage_res_ma_5dumm_dummies <- filter(marriage_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2") %>% 
  dplyr::select(-DIFFR2_avg)

marriage_res_ma_5dumm_dummies$Effect <- recode(marriage_res_ma_5dumm_dummies$Effect, 
                                             "DM2" = "2 years before event",
                                             "DM1" = "1 year before event",
                                             "DP1" = "1 year after event",
                                             "DP2" = "2 years after event",
                                             "DA2" = "> 2 years after event")

## Create table
kable(marriage_res_ma_5dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(marriage_res_ma_5dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 2 years before event 7 0.049 0.015 3.330 0.001 0.011 0.088
Agreeableness 1 year before event 7 0.045 0.021 2.147 0.032 -0.009 0.099
Agreeableness 1 year after event 7 -0.009 0.016 -0.556 0.578 -0.052 0.033
Agreeableness 2 years after event 7 -0.003 0.020 -0.175 0.861 -0.054 0.047
Agreeableness > 2 years after event 7 -0.002 0.003 -0.583 0.560 -0.009 0.005
Conscientiousness 2 years before event 7 0.064 0.014 4.589 0.000 0.028 0.099
Conscientiousness 1 year before event 7 0.021 0.015 1.391 0.164 -0.018 0.059
Conscientiousness 1 year after event 7 0.002 0.020 0.094 0.925 -0.051 0.055
Conscientiousness 2 years after event 7 0.025 0.021 1.158 0.247 -0.030 0.080
Conscientiousness > 2 years after event 7 -0.001 0.002 -0.727 0.467 -0.006 0.003
Extraversion 2 years before event 7 0.010 0.015 0.680 0.497 -0.028 0.048
Extraversion 1 year before event 7 0.003 0.013 0.245 0.806 -0.029 0.035
Extraversion 1 year after event 7 0.010 0.014 0.738 0.460 -0.026 0.046
Extraversion 2 years after event 7 -0.022 0.014 -1.571 0.116 -0.057 0.014
Extraversion > 2 years after event 7 -0.003 0.001 -2.340 0.019 -0.007 0.000
Emotional stability 2 years before event 7 0.018 0.014 1.243 0.214 -0.019 0.055
Emotional stability 1 year before event 7 0.013 0.014 0.910 0.363 -0.024 0.050
Emotional stability 1 year after event 7 0.028 0.016 1.726 0.084 -0.014 0.070
Emotional stability 2 years after event 7 0.028 0.016 1.739 0.082 -0.013 0.070
Emotional stability > 2 years after event 7 -0.002 0.002 -1.454 0.146 -0.007 0.002
Openness 2 years before event 7 0.018 0.014 1.257 0.209 -0.019 0.055
Openness 1 year before event 7 0.015 0.024 0.628 0.530 -0.047 0.078
Openness 1 year after event 7 -0.046 0.015 -2.981 0.003 -0.085 -0.006
Openness 2 years after event 7 -0.075 0.029 -2.570 0.010 -0.151 0.000
Openness > 2 years after event 7 -0.003 0.004 -0.823 0.411 -0.013 0.007
Life satisfaction 2 years before event 7 0.097 0.009 11.250 0.000 0.075 0.119
Life satisfaction 1 year before event 7 0.166 0.022 7.718 0.000 0.111 0.221
Life satisfaction 1 year after event 7 0.219 0.023 9.356 0.000 0.159 0.279
Life satisfaction 2 years after event 7 0.189 0.021 9.101 0.000 0.136 0.243
Life satisfaction > 2 years after event 7 0.017 0.005 3.661 0.000 0.005 0.028
Self-esteem 2 years before event 5 0.083 0.037 2.234 0.026 -0.013 0.179
Self-esteem 1 year before event 5 0.051 0.019 2.756 0.006 0.003 0.099
Self-esteem 1 year after event 5 0.060 0.020 3.022 0.003 0.009 0.111
Self-esteem 2 years after event 5 0.045 0.020 2.228 0.026 -0.007 0.098
Self-esteem > 2 years after event 5 0.003 0.003 1.149 0.250 -0.004 0.010

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the six linear contrasts that we used to examine personality changes occurring from specific pre-event to specific post-event assessments. Significant effects (p < .01) are depicted in bold.

marriage_res_ma_5dumm_contrast <- filter(marriage_res_ma_5dumm, Effect == "CONTRM2P1" |
                                       Effect == "CONTRM2P2" | Effect == "CONTRM2A2" |
                                       Effect == "CONTRM1P1" | Effect == "CONTRM1P2" |
                                       Effect == "CONTRM1A2") %>% 
  dplyr::select(-DIFFR2_avg)

marriage_res_ma_5dumm_contrast$Effect <- recode(marriage_res_ma_5dumm_contrast$Effect, 
                                             "CONTRM2P1" = "1Y After - 2Y Before",
                                             "CONTRM2P2" = "2Y After - 2Y Before",
                                             "CONTRM2A2" = ">2Y After - 2Y Before",
                                             "CONTRM1P1" = "1Y After - 1Y Before",
                                             "CONTRM1P2" = "2Y After - 1Y Before",
                                             "CONTRM1A2" = ">2Y After - 1Y Before")

## Create table
kable(marriage_res_ma_5dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(marriage_res_ma_5dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 1Y After - 2Y Before 7 -0.056 0.021 -2.712 0.007 -0.109 -0.003
Agreeableness 2Y After - 2Y Before 7 -0.055 0.020 -2.729 0.006 -0.106 -0.003
Agreeableness >2Y After - 2Y Before 7 -0.051 0.014 -3.523 0.000 -0.088 -0.014
Agreeableness 1Y After - 1Y Before 7 -0.056 0.020 -2.765 0.006 -0.109 -0.004
Agreeableness 2Y After - 1Y Before 7 -0.045 0.035 -1.279 0.201 -0.136 0.046
Agreeableness >2Y After - 1Y Before 7 -0.046 0.024 -1.884 0.060 -0.109 0.017
Conscientiousness 1Y After - 2Y Before 7 -0.058 0.019 -3.057 0.002 -0.106 -0.009
Conscientiousness 2Y After - 2Y Before 7 -0.048 0.019 -2.558 0.011 -0.097 0.000
Conscientiousness >2Y After - 2Y Before 7 -0.065 0.013 -4.851 0.000 -0.099 -0.030
Conscientiousness 1Y After - 1Y Before 7 -0.015 0.019 -0.771 0.440 -0.063 0.034
Conscientiousness 2Y After - 1Y Before 7 -0.010 0.019 -0.559 0.576 -0.058 0.037
Conscientiousness >2Y After - 1Y Before 7 -0.022 0.014 -1.575 0.115 -0.058 0.014
Extraversion 1Y After - 2Y Before 7 0.002 0.022 0.098 0.922 -0.055 0.059
Extraversion 2Y After - 2Y Before 7 -0.036 0.024 -1.476 0.140 -0.097 0.026
Extraversion >2Y After - 2Y Before 7 -0.013 0.014 -0.931 0.352 -0.049 0.023
Extraversion 1Y After - 1Y Before 7 0.008 0.017 0.473 0.636 -0.035 0.051
Extraversion 2Y After - 1Y Before 7 -0.034 0.021 -1.632 0.103 -0.088 0.020
Extraversion >2Y After - 1Y Before 7 -0.006 0.012 -0.530 0.596 -0.037 0.025
Emotional stability 1Y After - 2Y Before 7 0.007 0.020 0.362 0.717 -0.043 0.057
Emotional stability 2Y After - 2Y Before 7 0.013 0.020 0.631 0.528 -0.039 0.064
Emotional stability >2Y After - 2Y Before 7 -0.022 0.014 -1.553 0.120 -0.058 0.014
Emotional stability 1Y After - 1Y Before 7 0.016 0.019 0.810 0.418 -0.034 0.065
Emotional stability 2Y After - 1Y Before 7 0.013 0.019 0.660 0.509 -0.037 0.063
Emotional stability >2Y After - 1Y Before 7 -0.016 0.014 -1.194 0.232 -0.052 0.019
Openness 1Y After - 2Y Before 7 -0.059 0.023 -2.561 0.010 -0.119 0.000
Openness 2Y After - 2Y Before 7 -0.097 0.034 -2.895 0.004 -0.184 -0.011
Openness >2Y After - 2Y Before 7 -0.023 0.013 -1.711 0.087 -0.056 0.011
Openness 1Y After - 1Y Before 7 -0.054 0.020 -2.679 0.007 -0.106 -0.002
Openness 2Y After - 1Y Before 7 -0.087 0.029 -2.996 0.003 -0.163 -0.012
Openness >2Y After - 1Y Before 7 -0.018 0.019 -0.964 0.335 -0.067 0.031
Life satisfaction 1Y After - 2Y Before 7 0.126 0.026 4.921 0.000 0.060 0.192
Life satisfaction 2Y After - 2Y Before 7 0.090 0.020 4.636 0.000 0.040 0.141
Life satisfaction >2Y After - 2Y Before 7 -0.076 0.010 -7.625 0.000 -0.101 -0.050
Life satisfaction 1Y After - 1Y Before 7 0.051 0.011 4.581 0.000 0.022 0.079
Life satisfaction 2Y After - 1Y Before 7 0.013 0.010 1.199 0.231 -0.014 0.039
Life satisfaction >2Y After - 1Y Before 7 -0.147 0.015 -10.125 0.000 -0.185 -0.110
Self-esteem 1Y After - 2Y Before 5 -0.013 0.035 -0.382 0.702 -0.103 0.076
Self-esteem 2Y After - 2Y Before 5 -0.023 0.035 -0.654 0.513 -0.115 0.068
Self-esteem >2Y After - 2Y Before 5 -0.081 0.035 -2.334 0.020 -0.170 0.008
Self-esteem 1Y After - 1Y Before 5 0.008 0.021 0.355 0.723 -0.047 0.062
Self-esteem 2Y After - 1Y Before 5 0.003 0.023 0.131 0.896 -0.055 0.061
Self-esteem >2Y After - 1Y Before 5 -0.051 0.018 -2.904 0.004 -0.096 -0.006

Graph

This graph illustrates the meta-analytic estimates of the five event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the five event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
marriage_res_ma_5dumm_dummies <- filter(marriage_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")

## Create variable on significance
marriage_res_ma_5dumm_dummies$sig <- ifelse(marriage_res_ma_5dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

marriage_res_ma_5dumm_dummies$trait <- factor(marriage_res_ma_5dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
marriage_res_ma_5dumm_dummies$Effect <- factor(marriage_res_ma_5dumm_dummies$Effect, 
                                             levels = c("DM2", "DM1", "DP1", "DP2", "DA2"), 
                                             labels = c("-2 Years", "-1 Year", "+1 Year",
                                                        "+2 Years", ">2 Years"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- marriage_res_ma_5dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
marriage_res_ma_5dumm_dummies$ID <- 1:nrow(marriage_res_ma_5dumm_dummies)

plot <- ggplot(data = marriage_res_ma_5dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 2.5, y = 0.28), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 2.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 4.5, y = 0.28), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Childbirth

child_res_ma_5dumm <- filter(res_ma_5dumm_long, event == "Childbirth")

child_res_ma_5dumm <- dplyr::select(child_res_ma_5dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the five event-related dummy variables. These effects describe within-person changes in our outcome variables between assessments at a certain time point before/after the event occurrence and assessments unrelated to the event occurrence. Significant effects (p < .01) are depicted in bold.

child_res_ma_5dumm_dummies <- filter(child_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2") %>% 
  dplyr::select(-DIFFR2_avg)

child_res_ma_5dumm_dummies$Effect <- recode(child_res_ma_5dumm_dummies$Effect, 
                                             "DM2" = "2 years before event",
                                             "DM1" = "1 year before event",
                                             "DP1" = "1 year after event",
                                             "DP2" = "2 years after event",
                                             "DA2" = "> 2 years after event")

## Create table
kable(child_res_ma_5dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(child_res_ma_5dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 2 years before event 7 0.024 0.018 1.301 0.193 -0.024 0.072
Agreeableness 1 year before event 7 0.015 0.013 1.112 0.266 -0.020 0.050
Agreeableness 1 year after event 7 -0.004 0.022 -0.195 0.845 -0.061 0.052
Agreeableness 2 years after event 7 -0.030 0.015 -1.968 0.049 -0.069 0.009
Agreeableness > 2 years after event 7 -0.003 0.004 -0.952 0.341 -0.012 0.006
Conscientiousness 2 years before event 7 0.015 0.023 0.654 0.513 -0.044 0.073
Conscientiousness 1 year before event 7 0.015 0.017 0.885 0.376 -0.029 0.060
Conscientiousness 1 year after event 7 -0.021 0.015 -1.333 0.182 -0.061 0.019
Conscientiousness 2 years after event 7 -0.042 0.023 -1.833 0.067 -0.101 0.017
Conscientiousness > 2 years after event 7 -0.006 0.002 -3.058 0.002 -0.012 -0.001
Extraversion 2 years before event 7 0.022 0.012 1.796 0.073 -0.010 0.054
Extraversion 1 year before event 7 -0.013 0.011 -1.204 0.229 -0.042 0.015
Extraversion 1 year after event 7 -0.008 0.013 -0.616 0.538 -0.041 0.025
Extraversion 2 years after event 7 -0.027 0.013 -2.031 0.042 -0.060 0.007
Extraversion > 2 years after event 7 -0.001 0.002 -0.523 0.601 -0.006 0.004
Emotional stability 2 years before event 7 0.009 0.014 0.643 0.520 -0.026 0.044
Emotional stability 1 year before event 7 0.016 0.019 0.819 0.413 -0.033 0.065
Emotional stability 1 year after event 7 0.043 0.025 1.715 0.086 -0.021 0.107
Emotional stability 2 years after event 7 0.033 0.017 1.908 0.056 -0.011 0.077
Emotional stability > 2 years after event 7 -0.001 0.004 -0.167 0.868 -0.012 0.010
Openness 2 years before event 7 0.027 0.013 2.104 0.035 -0.006 0.061
Openness 1 year before event 7 -0.020 0.012 -1.639 0.101 -0.052 0.011
Openness 1 year after event 7 -0.085 0.019 -4.421 0.000 -0.135 -0.036
Openness 2 years after event 7 -0.074 0.022 -3.299 0.001 -0.131 -0.016
Openness > 2 years after event 7 -0.001 0.002 -0.416 0.678 -0.007 0.005
Life satisfaction 2 years before event 7 0.053 0.014 3.864 0.000 0.018 0.088
Life satisfaction 1 year before event 7 0.105 0.038 2.787 0.005 0.008 0.203
Life satisfaction 1 year after event 7 0.159 0.044 3.589 0.000 0.045 0.274
Life satisfaction 2 years after event 7 0.080 0.018 4.388 0.000 0.033 0.126
Life satisfaction > 2 years after event 7 0.008 0.005 1.539 0.124 -0.005 0.021
Self-esteem 2 years before event 5 0.033 0.017 1.869 0.062 -0.012 0.078
Self-esteem 1 year before event 5 0.078 0.026 3.018 0.003 0.011 0.145
Self-esteem 1 year after event 5 0.069 0.018 3.878 0.000 0.023 0.115
Self-esteem 2 years after event 5 0.033 0.019 1.757 0.079 -0.015 0.081
Self-esteem > 2 years after event 5 0.001 0.003 0.334 0.738 -0.008 0.010

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the six linear contrasts that we used to examine personality changes occurring from specific pre-event to specific post-event assessments. Significant effects (p < .01) are depicted in bold.

child_res_ma_5dumm_contrast <- filter(child_res_ma_5dumm, Effect == "CONTRM2P1" |
                                       Effect == "CONTRM2P2" | Effect == "CONTRM2A2" |
                                       Effect == "CONTRM1P1" | Effect == "CONTRM1P2" |
                                       Effect == "CONTRM1A2") %>% 
  dplyr::select(-DIFFR2_avg)

child_res_ma_5dumm_contrast$Effect <- recode(child_res_ma_5dumm_contrast$Effect, 
                                             "CONTRM2P1" = "1Y After - 2Y Before",
                                             "CONTRM2P2" = "2Y After - 2Y Before",
                                             "CONTRM2A2" = ">2Y After - 2Y Before",
                                             "CONTRM1P1" = "1Y After - 1Y Before",
                                             "CONTRM1P2" = "2Y After - 1Y Before",
                                             "CONTRM1A2" = ">2Y After - 1Y Before")

## Create table
kable(child_res_ma_5dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(child_res_ma_5dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 1Y After - 2Y Before 7 -0.026 0.036 -0.738 0.461 -0.118 0.066
Agreeableness 2Y After - 2Y Before 7 -0.038 0.035 -1.079 0.280 -0.129 0.053
Agreeableness >2Y After - 2Y Before 7 -0.024 0.020 -1.242 0.214 -0.075 0.026
Agreeableness 1Y After - 1Y Before 7 -0.026 0.024 -1.112 0.266 -0.087 0.034
Agreeableness 2Y After - 1Y Before 7 -0.049 0.018 -2.648 0.008 -0.096 -0.001
Agreeableness >2Y After - 1Y Before 7 -0.017 0.013 -1.330 0.184 -0.050 0.016
Conscientiousness 1Y After - 2Y Before 7 -0.038 0.025 -1.512 0.131 -0.104 0.027
Conscientiousness 2Y After - 2Y Before 7 -0.058 0.034 -1.695 0.090 -0.145 0.030
Conscientiousness >2Y After - 2Y Before 7 -0.020 0.023 -0.878 0.380 -0.080 0.039
Conscientiousness 1Y After - 1Y Before 7 -0.034 0.018 -1.951 0.051 -0.080 0.011
Conscientiousness 2Y After - 1Y Before 7 -0.060 0.017 -3.528 0.000 -0.104 -0.016
Conscientiousness >2Y After - 1Y Before 7 -0.021 0.017 -1.227 0.220 -0.065 0.023
Extraversion 1Y After - 2Y Before 7 -0.027 0.020 -1.379 0.168 -0.077 0.023
Extraversion 2Y After - 2Y Before 7 -0.050 0.017 -2.968 0.003 -0.092 -0.007
Extraversion >2Y After - 2Y Before 7 -0.022 0.012 -1.848 0.065 -0.053 0.009
Extraversion 1Y After - 1Y Before 7 0.002 0.015 0.152 0.879 -0.037 0.042
Extraversion 2Y After - 1Y Before 7 -0.016 0.019 -0.855 0.392 -0.064 0.032
Extraversion >2Y After - 1Y Before 7 0.014 0.011 1.302 0.193 -0.014 0.041
Emotional stability 1Y After - 2Y Before 7 0.030 0.029 1.037 0.300 -0.045 0.106
Emotional stability 2Y After - 2Y Before 7 0.021 0.021 1.002 0.316 -0.033 0.074
Emotional stability >2Y After - 2Y Before 7 -0.007 0.013 -0.543 0.587 -0.041 0.027
Emotional stability 1Y After - 1Y Before 7 0.025 0.029 0.881 0.378 -0.049 0.100
Emotional stability 2Y After - 1Y Before 7 0.021 0.029 0.722 0.471 -0.054 0.097
Emotional stability >2Y After - 1Y Before 7 -0.014 0.019 -0.748 0.454 -0.062 0.034
Openness 1Y After - 2Y Before 7 -0.113 0.018 -6.376 0.000 -0.158 -0.067
Openness 2Y After - 2Y Before 7 -0.105 0.018 -5.943 0.000 -0.150 -0.059
Openness >2Y After - 2Y Before 7 -0.028 0.013 -2.232 0.026 -0.060 0.004
Openness 1Y After - 1Y Before 7 -0.066 0.017 -3.786 0.000 -0.111 -0.021
Openness 2Y After - 1Y Before 7 -0.059 0.018 -3.265 0.001 -0.106 -0.012
Openness >2Y After - 1Y Before 7 0.019 0.012 1.601 0.109 -0.011 0.049
Life satisfaction 1Y After - 2Y Before 7 0.105 0.042 2.523 0.012 -0.002 0.213
Life satisfaction 2Y After - 2Y Before 7 0.025 0.023 1.100 0.271 -0.033 0.083
Life satisfaction >2Y After - 2Y Before 7 -0.041 0.015 -2.806 0.005 -0.079 -0.003
Life satisfaction 1Y After - 1Y Before 7 0.047 0.031 1.514 0.130 -0.033 0.126
Life satisfaction 2Y After - 1Y Before 7 -0.029 0.038 -0.757 0.449 -0.128 0.070
Life satisfaction >2Y After - 1Y Before 7 -0.096 0.036 -2.692 0.007 -0.188 -0.004
Self-esteem 1Y After - 2Y Before 5 0.029 0.032 0.917 0.359 -0.052 0.110
Self-esteem 2Y After - 2Y Before 5 -0.002 0.022 -0.072 0.943 -0.058 0.055
Self-esteem >2Y After - 2Y Before 5 -0.029 0.017 -1.676 0.094 -0.072 0.015
Self-esteem 1Y After - 1Y Before 5 -0.006 0.022 -0.287 0.774 -0.064 0.051
Self-esteem 2Y After - 1Y Before 5 -0.053 0.021 -2.518 0.012 -0.107 0.001
Self-esteem >2Y After - 1Y Before 5 -0.074 0.025 -2.937 0.003 -0.140 -0.009

Graph

This graph illustrates the meta-analytic estimates of the five event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the five event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
child_res_ma_5dumm_dummies <- filter(child_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")

## Create variable on significance
child_res_ma_5dumm_dummies$sig <- ifelse(child_res_ma_5dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

child_res_ma_5dumm_dummies$trait <- factor(child_res_ma_5dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
child_res_ma_5dumm_dummies$Effect <- factor(child_res_ma_5dumm_dummies$Effect, 
                                             levels = c("DM2", "DM1", "DP1", "DP2", "DA2"), 
                                             labels = c("-2 Years", "-1 Year", "+1 Year",
                                                        "+2 Years", ">2 Years"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- child_res_ma_5dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
child_res_ma_5dumm_dummies$ID <- 1:nrow(child_res_ma_5dumm_dummies)

plot <- ggplot(data = child_res_ma_5dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 2.5, y = 0.28), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 2.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 4.5, y = 0.28), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Separation

separat_res_ma_5dumm <- filter(res_ma_5dumm_long, event == "Separation")

separat_res_ma_5dumm <- dplyr::select(separat_res_ma_5dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the five event-related dummy variables. These effects describe within-person changes in our outcome variables between assessments at a certain time point before/after the event occurrence and assessments unrelated to the event occurrence. Significant effects (p < .01) are depicted in bold.

separat_res_ma_5dumm_dummies <- filter(separat_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2") %>% 
  dplyr::select(-DIFFR2_avg)

separat_res_ma_5dumm_dummies$Effect <- recode(separat_res_ma_5dumm_dummies$Effect, 
                                             "DM2" = "2 years before event",
                                             "DM1" = "1 year before event",
                                             "DP1" = "1 year after event",
                                             "DP2" = "2 years after event",
                                             "DA2" = "> 2 years after event")

## Create table
kable(separat_res_ma_5dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(separat_res_ma_5dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 2 years before event 6 -0.027 0.029 -0.942 0.346 -0.102 0.047
Agreeableness 1 year before event 6 -0.041 0.019 -2.213 0.027 -0.090 0.007
Agreeableness 1 year after event 6 0.042 0.022 1.874 0.061 -0.016 0.099
Agreeableness 2 years after event 6 0.081 0.028 2.901 0.004 0.009 0.152
Agreeableness > 2 years after event 6 0.000 0.005 0.010 0.992 -0.013 0.013
Conscientiousness 2 years before event 6 0.001 0.019 0.066 0.947 -0.048 0.051
Conscientiousness 1 year before event 6 -0.011 0.017 -0.636 0.525 -0.055 0.033
Conscientiousness 1 year after event 6 -0.016 0.024 -0.651 0.515 -0.078 0.047
Conscientiousness 2 years after event 6 -0.010 0.019 -0.513 0.608 -0.058 0.039
Conscientiousness > 2 years after event 6 0.001 0.004 0.245 0.806 -0.009 0.011
Extraversion 2 years before event 6 -0.018 0.016 -1.156 0.248 -0.059 0.022
Extraversion 1 year before event 6 -0.015 0.020 -0.733 0.464 -0.067 0.037
Extraversion 1 year after event 6 0.019 0.029 0.680 0.497 -0.054 0.093
Extraversion 2 years after event 6 0.002 0.017 0.128 0.899 -0.042 0.046
Extraversion > 2 years after event 6 0.001 0.003 0.393 0.694 -0.006 0.009
Emotional stability 2 years before event 6 -0.014 0.019 -0.754 0.451 -0.063 0.035
Emotional stability 1 year before event 6 -0.074 0.048 -1.542 0.123 -0.197 0.049
Emotional stability 1 year after event 6 -0.051 0.021 -2.413 0.016 -0.106 0.003
Emotional stability 2 years after event 6 0.007 0.021 0.336 0.737 -0.046 0.060
Emotional stability > 2 years after event 6 0.007 0.002 3.351 0.001 0.002 0.012
Openness 2 years before event 6 -0.027 0.022 -1.274 0.203 -0.083 0.028
Openness 1 year before event 6 0.014 0.027 0.510 0.610 -0.055 0.082
Openness 1 year after event 6 0.037 0.018 2.030 0.042 -0.010 0.085
Openness 2 years after event 6 0.010 0.019 0.525 0.599 -0.038 0.058
Openness > 2 years after event 6 0.005 0.002 2.705 0.007 0.000 0.010
Life satisfaction 2 years before event 6 -0.046 0.023 -1.962 0.050 -0.105 0.014
Life satisfaction 1 year before event 6 -0.169 0.082 -2.069 0.039 -0.380 0.041
Life satisfaction 1 year after event 6 -0.260 0.061 -4.293 0.000 -0.416 -0.104
Life satisfaction 2 years after event 6 -0.144 0.041 -3.532 0.000 -0.248 -0.039
Life satisfaction > 2 years after event 6 0.006 0.005 1.079 0.281 -0.008 0.019
Self-esteem 2 years before event 4 -0.081 0.062 -1.305 0.192 -0.240 0.078
Self-esteem 1 year before event 4 -0.121 0.077 -1.570 0.116 -0.320 0.078
Self-esteem 1 year after event 4 -0.116 0.070 -1.657 0.097 -0.297 0.064
Self-esteem 2 years after event 4 -0.050 0.062 -0.805 0.421 -0.210 0.110
Self-esteem > 2 years after event 4 0.003 0.004 0.808 0.419 -0.007 0.013

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the six linear contrasts that we used to examine personality changes occurring from specific pre-event to specific post-event assessments. Significant effects (p < .01) are depicted in bold.

separat_res_ma_5dumm_contrast <- filter(separat_res_ma_5dumm, Effect == "CONTRM2P1" |
                                       Effect == "CONTRM2P2" | Effect == "CONTRM2A2" |
                                       Effect == "CONTRM1P1" | Effect == "CONTRM1P2" |
                                       Effect == "CONTRM1A2") %>% 
  dplyr::select(-DIFFR2_avg)

separat_res_ma_5dumm_contrast$Effect <- recode(separat_res_ma_5dumm_contrast$Effect, 
                                             "CONTRM2P1" = "1Y After - 2Y Before",
                                             "CONTRM2P2" = "2Y After - 2Y Before",
                                             "CONTRM2A2" = ">2Y After - 2Y Before",
                                             "CONTRM1P1" = "1Y After - 1Y Before",
                                             "CONTRM1P2" = "2Y After - 1Y Before",
                                             "CONTRM1A2" = ">2Y After - 1Y Before")

## Create table
kable(separat_res_ma_5dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(separat_res_ma_5dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 1Y After - 2Y Before 6 0.071 0.028 2.540 0.011 -0.001 0.142
Agreeableness 2Y After - 2Y Before 6 0.098 0.051 1.914 0.056 -0.034 0.230
Agreeableness >2Y After - 2Y Before 6 0.028 0.026 1.061 0.289 -0.040 0.095
Agreeableness 1Y After - 1Y Before 6 0.086 0.028 3.072 0.002 0.014 0.157
Agreeableness 2Y After - 1Y Before 6 0.120 0.038 3.160 0.002 0.022 0.217
Agreeableness >2Y After - 1Y Before 6 0.041 0.018 2.257 0.024 -0.006 0.087
Conscientiousness 1Y After - 2Y Before 6 -0.013 0.034 -0.372 0.710 -0.099 0.074
Conscientiousness 2Y After - 2Y Before 6 -0.014 0.025 -0.577 0.564 -0.077 0.049
Conscientiousness >2Y After - 2Y Before 6 0.002 0.020 0.100 0.921 -0.048 0.052
Conscientiousness 1Y After - 1Y Before 6 -0.009 0.025 -0.357 0.721 -0.073 0.055
Conscientiousness 2Y After - 1Y Before 6 -0.003 0.026 -0.099 0.921 -0.069 0.064
Conscientiousness >2Y After - 1Y Before 6 0.013 0.017 0.772 0.440 -0.030 0.055
Extraversion 1Y After - 2Y Before 6 0.045 0.036 1.258 0.208 -0.047 0.137
Extraversion 2Y After - 2Y Before 6 0.020 0.022 0.895 0.371 -0.037 0.077
Extraversion >2Y After - 2Y Before 6 0.018 0.015 1.162 0.245 -0.022 0.057
Extraversion 1Y After - 1Y Before 6 0.036 0.032 1.124 0.261 -0.046 0.118
Extraversion 2Y After - 1Y Before 6 0.018 0.022 0.823 0.410 -0.038 0.074
Extraversion >2Y After - 1Y Before 6 0.014 0.019 0.722 0.470 -0.035 0.063
Emotional stability 1Y After - 2Y Before 6 -0.034 0.028 -1.249 0.212 -0.105 0.037
Emotional stability 2Y After - 2Y Before 6 0.019 0.027 0.712 0.477 -0.050 0.087
Emotional stability >2Y After - 2Y Before 6 0.021 0.019 1.134 0.257 -0.027 0.069
Emotional stability 1Y After - 1Y Before 6 0.003 0.027 0.106 0.915 -0.067 0.073
Emotional stability 2Y After - 1Y Before 6 0.066 0.040 1.624 0.104 -0.038 0.170
Emotional stability >2Y After - 1Y Before 6 0.080 0.048 1.660 0.097 -0.044 0.205
Openness 1Y After - 2Y Before 6 0.060 0.024 2.468 0.014 -0.003 0.123
Openness 2Y After - 2Y Before 6 0.034 0.025 1.370 0.171 -0.030 0.097
Openness >2Y After - 2Y Before 6 0.033 0.021 1.598 0.110 -0.020 0.086
Openness 1Y After - 1Y Before 6 0.014 0.050 0.278 0.781 -0.114 0.142
Openness 2Y After - 1Y Before 6 0.000 0.027 0.007 0.994 -0.069 0.069
Openness >2Y After - 1Y Before 6 -0.008 0.026 -0.313 0.755 -0.075 0.058
Life satisfaction 1Y After - 2Y Before 6 -0.237 0.039 -6.051 0.000 -0.338 -0.136
Life satisfaction 2Y After - 2Y Before 6 -0.099 0.014 -6.889 0.000 -0.136 -0.062
Life satisfaction >2Y After - 2Y Before 6 0.048 0.030 1.631 0.103 -0.028 0.124
Life satisfaction 1Y After - 1Y Before 6 -0.139 0.017 -7.981 0.000 -0.184 -0.094
Life satisfaction 2Y After - 1Y Before 6 0.021 0.043 0.496 0.620 -0.090 0.133
Life satisfaction >2Y After - 1Y Before 6 0.173 0.088 1.978 0.048 -0.052 0.399
Self-esteem 1Y After - 2Y Before 4 -0.004 0.022 -0.199 0.842 -0.062 0.053
Self-esteem 2Y After - 2Y Before 4 0.030 0.023 1.301 0.193 -0.029 0.090
Self-esteem >2Y After - 2Y Before 4 0.083 0.061 1.361 0.173 -0.074 0.240
Self-esteem 1Y After - 1Y Before 4 0.012 0.031 0.387 0.699 -0.068 0.092
Self-esteem 2Y After - 1Y Before 4 0.070 0.054 1.299 0.194 -0.068 0.208
Self-esteem >2Y After - 1Y Before 4 0.123 0.076 1.622 0.105 -0.073 0.320

Graph

This graph illustrates the meta-analytic estimates of the five event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the five event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
separat_res_ma_5dumm_dummies <- filter(separat_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")

## Create variable on significance
separat_res_ma_5dumm_dummies$sig <- ifelse(separat_res_ma_5dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

separat_res_ma_5dumm_dummies$trait <- factor(separat_res_ma_5dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
separat_res_ma_5dumm_dummies$Effect <- factor(separat_res_ma_5dumm_dummies$Effect, 
                                             levels = c("DM2", "DM1", "DP1", "DP2", "DA2"), 
                                             labels = c("-2 Years", "-1 Year", "+1 Year",
                                                        "+2 Years", ">2 Years"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- separat_res_ma_5dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
separat_res_ma_5dumm_dummies$ID <- 1:nrow(separat_res_ma_5dumm_dummies)

plot <- ggplot(data = separat_res_ma_5dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 2.5, y = 0.28), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 2.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 4.5, y = 0.28), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Divorce

divor_res_ma_5dumm <- filter(res_ma_5dumm_long, event == "Divorce")

divor_res_ma_5dumm <- dplyr::select(divor_res_ma_5dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the five event-related dummy variables. These effects describe within-person changes in our outcome variables between assessments at a certain time point before/after the event occurrence and assessments unrelated to the event occurrence. Significant effects (p < .01) are depicted in bold.

divor_res_ma_5dumm_dummies <- filter(divor_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2") %>% 
  dplyr::select(-DIFFR2_avg)

divor_res_ma_5dumm_dummies$Effect <- recode(divor_res_ma_5dumm_dummies$Effect, 
                                             "DM2" = "2 years before event",
                                             "DM1" = "1 year before event",
                                             "DP1" = "1 year after event",
                                             "DP2" = "2 years after event",
                                             "DA2" = "> 2 years after event")

## Create table
kable(divor_res_ma_5dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(divor_res_ma_5dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 2 years before event 7 0.001 0.038 0.034 0.973 -0.096 0.099
Agreeableness 1 year before event 7 0.003 0.024 0.115 0.908 -0.059 0.065
Agreeableness 1 year after event 7 0.078 0.027 2.865 0.004 0.008 0.148
Agreeableness 2 years after event 7 0.065 0.036 1.833 0.067 -0.027 0.157
Agreeableness > 2 years after event 7 0.001 0.004 0.238 0.812 -0.010 0.012
Conscientiousness 2 years before event 7 0.002 0.025 0.080 0.936 -0.062 0.066
Conscientiousness 1 year before event 7 -0.086 0.024 -3.582 0.000 -0.148 -0.024
Conscientiousness 1 year after event 7 -0.032 0.026 -1.228 0.219 -0.098 0.035
Conscientiousness 2 years after event 7 -0.027 0.024 -1.123 0.261 -0.090 0.035
Conscientiousness > 2 years after event 7 -0.003 0.002 -1.153 0.249 -0.009 0.004
Extraversion 2 years before event 7 0.012 0.022 0.564 0.573 -0.044 0.069
Extraversion 1 year before event 7 -0.033 0.022 -1.511 0.131 -0.090 0.023
Extraversion 1 year after event 7 0.005 0.024 0.203 0.839 -0.056 0.066
Extraversion 2 years after event 7 0.023 0.040 0.578 0.563 -0.081 0.127
Extraversion > 2 years after event 7 0.001 0.002 0.269 0.788 -0.005 0.006
Emotional stability 2 years before event 7 -0.046 0.024 -1.894 0.058 -0.108 0.016
Emotional stability 1 year before event 7 -0.080 0.036 -2.225 0.026 -0.173 0.013
Emotional stability 1 year after event 7 -0.048 0.071 -0.686 0.493 -0.230 0.133
Emotional stability 2 years after event 7 0.057 0.032 1.774 0.076 -0.026 0.141
Emotional stability > 2 years after event 7 0.005 0.002 2.079 0.038 -0.001 0.011
Openness 2 years before event 7 0.035 0.028 1.269 0.204 -0.036 0.107
Openness 1 year before event 7 0.005 0.022 0.249 0.803 -0.050 0.061
Openness 1 year after event 7 0.034 0.025 1.367 0.172 -0.030 0.097
Openness 2 years after event 7 0.008 0.023 0.350 0.726 -0.051 0.067
Openness > 2 years after event 7 0.006 0.002 2.768 0.006 0.000 0.012
Life satisfaction 2 years before event 7 -0.223 0.019 -11.600 0.000 -0.272 -0.173
Life satisfaction 1 year before event 7 -0.246 0.072 -3.401 0.001 -0.432 -0.060
Life satisfaction 1 year after event 7 -0.118 0.087 -1.365 0.172 -0.341 0.105
Life satisfaction 2 years after event 7 -0.035 0.059 -0.597 0.550 -0.188 0.117
Life satisfaction > 2 years after event 7 0.016 0.006 2.643 0.008 0.000 0.031
Self-esteem 2 years before event 5 -0.070 0.039 -1.796 0.072 -0.170 0.030
Self-esteem 1 year before event 5 -0.113 0.049 -2.318 0.020 -0.238 0.013
Self-esteem 1 year after event 5 -0.047 0.050 -0.929 0.353 -0.176 0.083
Self-esteem 2 years after event 5 0.062 0.086 0.719 0.472 -0.159 0.282
Self-esteem > 2 years after event 5 0.001 0.004 0.208 0.835 -0.010 0.011

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the six linear contrasts that we used to examine personality changes occurring from specific pre-event to specific post-event assessments. Significant effects (p < .01) are depicted in bold.

divor_res_ma_5dumm_contrast <- filter(divor_res_ma_5dumm, Effect == "CONTRM2P1" |
                                       Effect == "CONTRM2P2" | Effect == "CONTRM2A2" |
                                       Effect == "CONTRM1P1" | Effect == "CONTRM1P2" |
                                       Effect == "CONTRM1A2") %>% 
  dplyr::select(-DIFFR2_avg)

divor_res_ma_5dumm_contrast$Effect <- recode(divor_res_ma_5dumm_contrast$Effect, 
                                             "CONTRM2P1" = "1Y After - 2Y Before",
                                             "CONTRM2P2" = "2Y After - 2Y Before",
                                             "CONTRM2A2" = ">2Y After - 2Y Before",
                                             "CONTRM1P1" = "1Y After - 1Y Before",
                                             "CONTRM1P2" = "2Y After - 1Y Before",
                                             "CONTRM1A2" = ">2Y After - 1Y Before")

## Create table
kable(divor_res_ma_5dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(divor_res_ma_5dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 1Y After - 2Y Before 7 0.067 0.039 1.720 0.085 -0.033 0.167
Agreeableness 2Y After - 2Y Before 7 0.066 0.054 1.218 0.223 -0.073 0.205
Agreeableness >2Y After - 2Y Before 7 -0.002 0.035 -0.054 0.957 -0.092 0.088
Agreeableness 1Y After - 1Y Before 7 0.081 0.033 2.454 0.014 -0.004 0.166
Agreeableness 2Y After - 1Y Before 7 0.047 0.031 1.534 0.125 -0.032 0.126
Agreeableness >2Y After - 1Y Before 7 -0.003 0.023 -0.127 0.899 -0.063 0.057
Conscientiousness 1Y After - 2Y Before 7 -0.038 0.040 -0.938 0.348 -0.141 0.066
Conscientiousness 2Y After - 2Y Before 7 -0.034 0.031 -1.076 0.282 -0.114 0.047
Conscientiousness >2Y After - 2Y Before 7 -0.005 0.024 -0.192 0.848 -0.067 0.058
Conscientiousness 1Y After - 1Y Before 7 0.052 0.032 1.638 0.101 -0.030 0.135
Conscientiousness 2Y After - 1Y Before 7 0.062 0.038 1.648 0.099 -0.035 0.159
Conscientiousness >2Y After - 1Y Before 7 0.083 0.023 3.693 0.000 0.025 0.141
Extraversion 1Y After - 2Y Before 7 -0.015 0.030 -0.496 0.620 -0.093 0.063
Extraversion 2Y After - 2Y Before 7 0.003 0.048 0.068 0.946 -0.121 0.128
Extraversion >2Y After - 2Y Before 7 -0.012 0.021 -0.545 0.586 -0.067 0.044
Extraversion 1Y After - 1Y Before 7 0.031 0.029 1.070 0.285 -0.044 0.107
Extraversion 2Y After - 1Y Before 7 0.051 0.049 1.031 0.302 -0.076 0.177
Extraversion >2Y After - 1Y Before 7 0.033 0.021 1.541 0.123 -0.022 0.088
Emotional stability 1Y After - 2Y Before 7 0.025 0.038 0.661 0.509 -0.072 0.122
Emotional stability 2Y After - 2Y Before 7 0.100 0.034 2.985 0.003 0.014 0.187
Emotional stability >2Y After - 2Y Before 7 0.049 0.023 2.098 0.036 -0.011 0.110
Emotional stability 1Y After - 1Y Before 7 0.036 0.063 0.564 0.573 -0.127 0.198
Emotional stability 2Y After - 1Y Before 7 0.131 0.036 3.626 0.000 0.038 0.224
Emotional stability >2Y After - 1Y Before 7 0.083 0.035 2.366 0.018 -0.007 0.174
Openness 1Y After - 2Y Before 7 -0.011 0.042 -0.251 0.802 -0.120 0.099
Openness 2Y After - 2Y Before 7 -0.012 0.041 -0.285 0.776 -0.118 0.094
Openness >2Y After - 2Y Before 7 -0.029 0.027 -1.077 0.281 -0.099 0.041
Openness 1Y After - 1Y Before 7 0.026 0.039 0.656 0.512 -0.076 0.128
Openness 2Y After - 1Y Before 7 -0.003 0.029 -0.098 0.922 -0.077 0.071
Openness >2Y After - 1Y Before 7 0.001 0.021 0.028 0.978 -0.053 0.055
Life satisfaction 1Y After - 2Y Before 7 0.050 0.101 0.498 0.619 -0.209 0.309
Life satisfaction 2Y After - 2Y Before 7 0.141 0.078 1.813 0.070 -0.059 0.342
Life satisfaction >2Y After - 2Y Before 7 0.245 0.019 13.095 0.000 0.197 0.293
Life satisfaction 1Y After - 1Y Before 7 0.134 0.021 6.428 0.000 0.081 0.188
Life satisfaction 2Y After - 1Y Before 7 0.219 0.047 4.650 0.000 0.098 0.340
Life satisfaction >2Y After - 1Y Before 7 0.266 0.069 3.872 0.000 0.089 0.442
Self-esteem 1Y After - 2Y Before 5 0.023 0.058 0.402 0.688 -0.126 0.172
Self-esteem 2Y After - 2Y Before 5 0.117 0.084 1.400 0.162 -0.099 0.334
Self-esteem >2Y After - 2Y Before 5 0.070 0.038 1.837 0.066 -0.028 0.168
Self-esteem 1Y After - 1Y Before 5 0.062 0.040 1.536 0.125 -0.042 0.166
Self-esteem 2Y After - 1Y Before 5 0.174 0.043 4.031 0.000 0.063 0.286
Self-esteem >2Y After - 1Y Before 5 0.112 0.048 2.311 0.021 -0.013 0.236

Graph

This graph illustrates the meta-analytic estimates of the five event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the five event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
divor_res_ma_5dumm_dummies <- filter(divor_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")

## Create variable on significance
divor_res_ma_5dumm_dummies$sig <- ifelse(divor_res_ma_5dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

divor_res_ma_5dumm_dummies$trait <- factor(divor_res_ma_5dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
divor_res_ma_5dumm_dummies$Effect <- factor(divor_res_ma_5dumm_dummies$Effect, 
                                             levels = c("DM2", "DM1", "DP1", "DP2", "DA2"), 
                                             labels = c("-2 Years", "-1 Year", "+1 Year",
                                                        "+2 Years", ">2 Years"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- divor_res_ma_5dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
divor_res_ma_5dumm_dummies$ID <- 1:nrow(divor_res_ma_5dumm_dummies)

plot <- ggplot(data = divor_res_ma_5dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 2.5, y = 0.28), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 2.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 4.5, y = 0.28), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Widowhood

widow_res_ma_5dumm <- filter(res_ma_5dumm_long, event == "Widowhood")

widow_res_ma_5dumm <- dplyr::select(widow_res_ma_5dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the five event-related dummy variables. These effects describe within-person changes in our outcome variables between assessments at a certain time point before/after the event occurrence and assessments unrelated to the event occurrence. Significant effects (p < .01) are depicted in bold.

widow_res_ma_5dumm_dummies <- filter(widow_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2") %>% 
  dplyr::select(-DIFFR2_avg)

widow_res_ma_5dumm_dummies$Effect <- recode(widow_res_ma_5dumm_dummies$Effect, 
                                             "DM2" = "2 years before event",
                                             "DM1" = "1 year before event",
                                             "DP1" = "1 year after event",
                                             "DP2" = "2 years after event",
                                             "DA2" = "> 2 years after event")

## Create table
kable(widow_res_ma_5dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(widow_res_ma_5dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 2 years before event 5 0.007 0.027 0.239 0.811 -0.064 0.077
Agreeableness 1 year before event 5 0.002 0.021 0.097 0.922 -0.053 0.057
Agreeableness 1 year after event 5 0.011 0.047 0.226 0.821 -0.111 0.133
Agreeableness 2 years after event 5 0.044 0.024 1.856 0.063 -0.017 0.106
Agreeableness > 2 years after event 5 0.000 0.005 0.044 0.965 -0.014 0.014
Conscientiousness 2 years before event 5 0.020 0.033 0.615 0.538 -0.064 0.105
Conscientiousness 1 year before event 5 -0.026 0.030 -0.858 0.391 -0.102 0.051
Conscientiousness 1 year after event 5 -0.066 0.041 -1.590 0.112 -0.172 0.041
Conscientiousness 2 years after event 5 -0.026 0.023 -1.141 0.254 -0.085 0.033
Conscientiousness > 2 years after event 5 -0.007 0.003 -2.487 0.013 -0.014 0.000
Extraversion 2 years before event 5 0.032 0.044 0.719 0.472 -0.082 0.146
Extraversion 1 year before event 5 0.009 0.042 0.216 0.829 -0.100 0.118
Extraversion 1 year after event 5 -0.083 0.021 -3.996 0.000 -0.137 -0.030
Extraversion 2 years after event 5 -0.025 0.021 -1.220 0.222 -0.079 0.028
Extraversion > 2 years after event 5 -0.002 0.005 -0.294 0.769 -0.015 0.012
Emotional stability 2 years before event 5 -0.066 0.021 -3.146 0.002 -0.120 -0.012
Emotional stability 1 year before event 5 -0.106 0.021 -4.953 0.000 -0.161 -0.051
Emotional stability 1 year after event 5 -0.057 0.056 -1.019 0.308 -0.202 0.088
Emotional stability 2 years after event 5 -0.001 0.047 -0.016 0.988 -0.122 0.121
Emotional stability > 2 years after event 5 0.008 0.005 1.693 0.090 -0.004 0.020
Openness 2 years before event 5 0.011 0.033 0.336 0.737 -0.074 0.096
Openness 1 year before event 5 -0.030 0.028 -1.069 0.285 -0.102 0.042
Openness 1 year after event 5 -0.049 0.023 -2.097 0.036 -0.109 0.011
Openness 2 years after event 5 -0.001 0.022 -0.037 0.971 -0.057 0.055
Openness > 2 years after event 5 -0.001 0.002 -0.316 0.752 -0.007 0.006
Life satisfaction 2 years before event 5 -0.087 0.027 -3.184 0.001 -0.158 -0.017
Life satisfaction 1 year before event 5 -0.218 0.036 -6.075 0.000 -0.311 -0.126
Life satisfaction 1 year after event 5 -0.470 0.113 -4.169 0.000 -0.760 -0.180
Life satisfaction 2 years after event 5 -0.264 0.049 -5.388 0.000 -0.390 -0.138
Life satisfaction > 2 years after event 5 0.005 0.006 0.819 0.413 -0.011 0.021
Self-esteem 2 years before event 3 0.006 0.041 0.135 0.893 -0.100 0.111
Self-esteem 1 year before event 3 -0.037 0.070 -0.527 0.598 -0.216 0.143
Self-esteem 1 year after event 3 -0.098 0.039 -2.476 0.013 -0.199 0.004
Self-esteem 2 years after event 3 -0.079 0.050 -1.601 0.109 -0.207 0.048
Self-esteem > 2 years after event 3 0.010 0.009 1.138 0.255 -0.013 0.034

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the six linear contrasts that we used to examine personality changes occurring from specific pre-event to specific post-event assessments. Significant effects (p < .01) are depicted in bold.

widow_res_ma_5dumm_contrast <- filter(widow_res_ma_5dumm, Effect == "CONTRM2P1" |
                                       Effect == "CONTRM2P2" | Effect == "CONTRM2A2" |
                                       Effect == "CONTRM1P1" | Effect == "CONTRM1P2" |
                                       Effect == "CONTRM1A2") %>% 
  dplyr::select(-DIFFR2_avg)

widow_res_ma_5dumm_contrast$Effect <- recode(widow_res_ma_5dumm_contrast$Effect, 
                                             "CONTRM2P1" = "1Y After - 2Y Before",
                                             "CONTRM2P2" = "2Y After - 2Y Before",
                                             "CONTRM2A2" = ">2Y After - 2Y Before",
                                             "CONTRM1P1" = "1Y After - 1Y Before",
                                             "CONTRM1P2" = "2Y After - 1Y Before",
                                             "CONTRM1A2" = ">2Y After - 1Y Before")

## Create table
kable(widow_res_ma_5dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(widow_res_ma_5dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 1Y After - 2Y Before 5 0.009 0.072 0.130 0.897 -0.176 0.194
Agreeableness 2Y After - 2Y Before 5 0.047 0.048 0.972 0.331 -0.078 0.171
Agreeableness >2Y After - 2Y Before 5 -0.004 0.033 -0.128 0.898 -0.089 0.081
Agreeableness 1Y After - 1Y Before 5 0.010 0.031 0.337 0.736 -0.068 0.089
Agreeableness 2Y After - 1Y Before 5 0.044 0.029 1.494 0.135 -0.032 0.120
Agreeableness >2Y After - 1Y Before 5 0.000 0.021 0.019 0.985 -0.053 0.053
Conscientiousness 1Y After - 2Y Before 5 -0.083 0.048 -1.721 0.085 -0.207 0.041
Conscientiousness 2Y After - 2Y Before 5 -0.044 0.038 -1.173 0.241 -0.141 0.053
Conscientiousness >2Y After - 2Y Before 5 -0.028 0.034 -0.824 0.410 -0.116 0.060
Conscientiousness 1Y After - 1Y Before 5 -0.034 0.040 -0.858 0.391 -0.136 0.068
Conscientiousness 2Y After - 1Y Before 5 0.002 0.031 0.079 0.937 -0.077 0.082
Conscientiousness >2Y After - 1Y Before 5 0.019 0.029 0.654 0.513 -0.056 0.095
Extraversion 1Y After - 2Y Before 5 -0.104 0.042 -2.463 0.014 -0.212 0.005
Extraversion 2Y After - 2Y Before 5 -0.074 0.059 -1.260 0.208 -0.225 0.077
Extraversion >2Y After - 2Y Before 5 -0.034 0.044 -0.778 0.436 -0.146 0.078
Extraversion 1Y After - 1Y Before 5 -0.080 0.032 -2.521 0.012 -0.161 0.002
Extraversion 2Y After - 1Y Before 5 -0.039 0.031 -1.250 0.211 -0.118 0.041
Extraversion >2Y After - 1Y Before 5 -0.009 0.037 -0.249 0.804 -0.103 0.085
Emotional stability 1Y After - 2Y Before 5 -0.003 0.063 -0.054 0.957 -0.165 0.159
Emotional stability 2Y After - 2Y Before 5 0.049 0.052 0.942 0.346 -0.085 0.183
Emotional stability >2Y After - 2Y Before 5 0.077 0.021 3.764 0.000 0.024 0.130
Emotional stability 1Y After - 1Y Before 5 0.056 0.070 0.802 0.423 -0.125 0.238
Emotional stability 2Y After - 1Y Before 5 0.111 0.063 1.749 0.080 -0.052 0.274
Emotional stability >2Y After - 1Y Before 5 0.117 0.021 5.593 0.000 0.063 0.170
Openness 1Y After - 2Y Before 5 -0.055 0.032 -1.711 0.087 -0.137 0.028
Openness 2Y After - 2Y Before 5 0.000 0.029 0.005 0.996 -0.074 0.074
Openness >2Y After - 2Y Before 5 -0.013 0.033 -0.383 0.702 -0.097 0.072
Openness 1Y After - 1Y Before 5 -0.015 0.029 -0.527 0.598 -0.091 0.060
Openness 2Y After - 1Y Before 5 0.038 0.028 1.396 0.163 -0.033 0.109
Openness >2Y After - 1Y Before 5 0.029 0.027 1.043 0.297 -0.042 0.099
Life satisfaction 1Y After - 2Y Before 5 -0.411 0.106 -3.893 0.000 -0.684 -0.139
Life satisfaction 2Y After - 2Y Before 5 -0.185 0.049 -3.775 0.000 -0.311 -0.059
Life satisfaction >2Y After - 2Y Before 5 0.089 0.030 2.907 0.004 0.010 0.167
Life satisfaction 1Y After - 1Y Before 5 -0.256 0.088 -2.903 0.004 -0.482 -0.029
Life satisfaction 2Y After - 1Y Before 5 -0.041 0.025 -1.620 0.105 -0.106 0.024
Life satisfaction >2Y After - 1Y Before 5 0.223 0.033 6.746 0.000 0.138 0.308
Self-esteem 1Y After - 2Y Before 3 -0.096 0.047 -2.034 0.042 -0.218 0.026
Self-esteem 2Y After - 2Y Before 3 -0.091 0.058 -1.571 0.116 -0.241 0.059
Self-esteem >2Y After - 2Y Before 3 -0.005 0.039 -0.126 0.900 -0.106 0.096
Self-esteem 1Y After - 1Y Before 3 -0.025 0.052 -0.473 0.637 -0.159 0.109
Self-esteem 2Y After - 1Y Before 3 -0.019 0.057 -0.335 0.738 -0.165 0.127
Self-esteem >2Y After - 1Y Before 3 0.048 0.057 0.838 0.402 -0.099 0.195

Graph

This graph illustrates the meta-analytic estimates of the five event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the five event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
widow_res_ma_5dumm_dummies <- filter(widow_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")

## Create variable on significance
widow_res_ma_5dumm_dummies$sig <- ifelse(widow_res_ma_5dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

widow_res_ma_5dumm_dummies$trait <- factor(widow_res_ma_5dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
widow_res_ma_5dumm_dummies$Effect <- factor(widow_res_ma_5dumm_dummies$Effect, 
                                             levels = c("DM2", "DM1", "DP1", "DP2", "DA2"), 
                                             labels = c("-2 Years", "-1 Year", "+1 Year",
                                                        "+2 Years", ">2 Years"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- widow_res_ma_5dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
widow_res_ma_5dumm_dummies$ID <- 1:nrow(widow_res_ma_5dumm_dummies)

plot <- ggplot(data = widow_res_ma_5dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 2.5, y = 0.28), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 2.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 4.5, y = 0.28), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Graduation

gradu_res_ma_5dumm <- filter(res_ma_5dumm_long, event == "Graduation")

gradu_res_ma_5dumm <- dplyr::select(gradu_res_ma_5dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the five event-related dummy variables. These effects describe within-person changes in our outcome variables between assessments at a certain time point before/after the event occurrence and assessments unrelated to the event occurrence. Significant effects (p < .01) are depicted in bold.

gradu_res_ma_5dumm_dummies <- filter(gradu_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2") %>% 
  dplyr::select(-DIFFR2_avg)

gradu_res_ma_5dumm_dummies$Effect <- recode(gradu_res_ma_5dumm_dummies$Effect, 
                                             "DM2" = "2 years before event",
                                             "DM1" = "1 year before event",
                                             "DP1" = "1 year after event",
                                             "DP2" = "2 years after event",
                                             "DA2" = "> 2 years after event")

## Create table
kable(gradu_res_ma_5dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(gradu_res_ma_5dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 2 years before event 5 -0.004 0.022 -0.171 0.864 -0.061 0.053
Agreeableness 1 year before event 5 0.010 0.015 0.647 0.518 -0.028 0.048
Agreeableness 1 year after event 5 0.013 0.015 0.845 0.398 -0.026 0.052
Agreeableness 2 years after event 5 0.003 0.016 0.203 0.839 -0.037 0.043
Agreeableness > 2 years after event 5 0.003 0.002 1.392 0.164 -0.002 0.007
Conscientiousness 2 years before event 5 0.004 0.026 0.158 0.874 -0.062 0.070
Conscientiousness 1 year before event 5 -0.014 0.015 -0.943 0.346 -0.054 0.025
Conscientiousness 1 year after event 5 0.042 0.040 1.067 0.286 -0.060 0.145
Conscientiousness 2 years after event 5 0.030 0.041 0.736 0.462 -0.075 0.136
Conscientiousness > 2 years after event 5 0.009 0.006 1.392 0.164 -0.007 0.024
Extraversion 2 years before event 5 0.003 0.013 0.253 0.800 -0.030 0.037
Extraversion 1 year before event 5 0.011 0.021 0.539 0.590 -0.042 0.065
Extraversion 1 year after event 5 -0.015 0.019 -0.778 0.436 -0.063 0.034
Extraversion 2 years after event 5 -0.016 0.013 -1.189 0.235 -0.050 0.018
Extraversion > 2 years after event 5 -0.001 0.003 -0.358 0.720 -0.008 0.006
Emotional stability 2 years before event 5 -0.005 0.016 -0.328 0.743 -0.045 0.035
Emotional stability 1 year before event 5 -0.035 0.014 -2.554 0.011 -0.071 0.000
Emotional stability 1 year after event 5 0.042 0.027 1.546 0.122 -0.028 0.112
Emotional stability 2 years after event 5 0.003 0.015 0.184 0.854 -0.037 0.042
Emotional stability > 2 years after event 5 -0.003 0.004 -0.700 0.484 -0.014 0.008
Openness 2 years before event 5 -0.018 0.019 -0.986 0.324 -0.066 0.030
Openness 1 year before event 5 0.054 0.013 4.050 0.000 0.020 0.088
Openness 1 year after event 5 0.013 0.014 0.976 0.329 -0.022 0.049
Openness 2 years after event 5 -0.007 0.015 -0.449 0.653 -0.046 0.032
Openness > 2 years after event 5 0.002 0.002 0.902 0.367 -0.004 0.008
Life satisfaction 2 years before event 5 -0.029 0.022 -1.319 0.187 -0.087 0.028
Life satisfaction 1 year before event 5 0.027 0.041 0.647 0.518 -0.080 0.133
Life satisfaction 1 year after event 5 -0.007 0.012 -0.611 0.541 -0.038 0.024
Life satisfaction 2 years after event 5 -0.012 0.009 -1.266 0.205 -0.036 0.012
Life satisfaction > 2 years after event 5 0.008 0.004 1.981 0.048 -0.002 0.017
Self-esteem 2 years before event 4 -0.009 0.023 -0.388 0.698 -0.067 0.050
Self-esteem 1 year before event 4 0.017 0.019 0.915 0.360 -0.031 0.066
Self-esteem 1 year after event 4 0.001 0.021 0.061 0.951 -0.053 0.055
Self-esteem 2 years after event 4 -0.017 0.022 -0.799 0.424 -0.073 0.038
Self-esteem > 2 years after event 4 -0.001 0.007 -0.174 0.862 -0.021 0.018

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the six linear contrasts that we used to examine personality changes occurring from specific pre-event to specific post-event assessments. Significant effects (p < .01) are depicted in bold.

gradu_res_ma_5dumm_contrast <- filter(gradu_res_ma_5dumm, Effect == "CONTRM2P1" |
                                       Effect == "CONTRM2P2" | Effect == "CONTRM2A2" |
                                       Effect == "CONTRM1P1" | Effect == "CONTRM1P2" |
                                       Effect == "CONTRM1A2") %>% 
  dplyr::select(-DIFFR2_avg)

gradu_res_ma_5dumm_contrast$Effect <- recode(gradu_res_ma_5dumm_contrast$Effect, 
                                             "CONTRM2P1" = "1Y After - 2Y Before",
                                             "CONTRM2P2" = "2Y After - 2Y Before",
                                             "CONTRM2A2" = ">2Y After - 2Y Before",
                                             "CONTRM1P1" = "1Y After - 1Y Before",
                                             "CONTRM1P2" = "2Y After - 1Y Before",
                                             "CONTRM1A2" = ">2Y After - 1Y Before")

## Create table
kable(gradu_res_ma_5dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(gradu_res_ma_5dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 1Y After - 2Y Before 5 0.017 0.030 0.579 0.562 -0.059 0.094
Agreeableness 2Y After - 2Y Before 5 0.007 0.026 0.281 0.779 -0.059 0.074
Agreeableness >2Y After - 2Y Before 5 0.008 0.022 0.341 0.733 -0.049 0.064
Agreeableness 1Y After - 1Y Before 5 0.001 0.018 0.063 0.950 -0.046 0.048
Agreeableness 2Y After - 1Y Before 5 -0.006 0.025 -0.243 0.808 -0.070 0.058
Agreeableness >2Y After - 1Y Before 5 -0.006 0.014 -0.415 0.678 -0.043 0.031
Conscientiousness 1Y After - 2Y Before 5 0.058 0.020 2.922 0.003 0.007 0.109
Conscientiousness 2Y After - 2Y Before 5 0.027 0.039 0.697 0.486 -0.074 0.129
Conscientiousness >2Y After - 2Y Before 5 0.003 0.025 0.134 0.893 -0.061 0.068
Conscientiousness 1Y After - 1Y Before 5 0.057 0.037 1.563 0.118 -0.037 0.151
Conscientiousness 2Y After - 1Y Before 5 0.045 0.042 1.062 0.288 -0.064 0.154
Conscientiousness >2Y After - 1Y Before 5 0.022 0.013 1.634 0.102 -0.013 0.057
Extraversion 1Y After - 2Y Before 5 -0.014 0.016 -0.892 0.373 -0.055 0.027
Extraversion 2Y After - 2Y Before 5 -0.020 0.017 -1.227 0.220 -0.064 0.023
Extraversion >2Y After - 2Y Before 5 -0.005 0.013 -0.367 0.713 -0.037 0.028
Extraversion 1Y After - 1Y Before 5 -0.024 0.015 -1.564 0.118 -0.064 0.016
Extraversion 2Y After - 1Y Before 5 -0.027 0.016 -1.733 0.083 -0.068 0.013
Extraversion >2Y After - 1Y Before 5 -0.009 0.016 -0.594 0.553 -0.050 0.031
Emotional stability 1Y After - 2Y Before 5 0.043 0.018 2.455 0.014 -0.002 0.089
Emotional stability 2Y After - 2Y Before 5 0.010 0.019 0.556 0.578 -0.038 0.059
Emotional stability >2Y After - 2Y Before 5 0.000 0.016 -0.006 0.995 -0.041 0.041
Emotional stability 1Y After - 1Y Before 5 0.069 0.030 2.308 0.021 -0.008 0.147
Emotional stability 2Y After - 1Y Before 5 0.034 0.019 1.757 0.079 -0.016 0.083
Emotional stability >2Y After - 1Y Before 5 0.030 0.013 2.294 0.022 -0.004 0.064
Openness 1Y After - 2Y Before 5 0.033 0.017 1.949 0.051 -0.011 0.076
Openness 2Y After - 2Y Before 5 0.014 0.027 0.532 0.595 -0.055 0.083
Openness >2Y After - 2Y Before 5 0.022 0.020 1.106 0.269 -0.029 0.073
Openness 1Y After - 1Y Before 5 -0.039 0.016 -2.381 0.017 -0.081 0.003
Openness 2Y After - 1Y Before 5 -0.060 0.017 -3.559 0.000 -0.104 -0.017
Openness >2Y After - 1Y Before 5 -0.051 0.013 -3.907 0.000 -0.085 -0.017
Life satisfaction 1Y After - 2Y Before 5 0.018 0.015 1.213 0.225 -0.021 0.057
Life satisfaction 2Y After - 2Y Before 5 0.011 0.014 0.762 0.446 -0.026 0.047
Life satisfaction >2Y After - 2Y Before 5 0.036 0.017 2.060 0.039 -0.009 0.080
Life satisfaction 1Y After - 1Y Before 5 -0.029 0.037 -0.785 0.432 -0.124 0.066
Life satisfaction 2Y After - 1Y Before 5 -0.038 0.032 -1.205 0.228 -0.120 0.044
Life satisfaction >2Y After - 1Y Before 5 -0.021 0.040 -0.521 0.602 -0.125 0.083
Self-esteem 1Y After - 2Y Before 4 0.014 0.022 0.621 0.535 -0.044 0.071
Self-esteem 2Y After - 2Y Before 4 0.001 0.025 0.034 0.973 -0.064 0.065
Self-esteem >2Y After - 2Y Before 4 0.005 0.027 0.204 0.839 -0.064 0.075
Self-esteem 1Y After - 1Y Before 4 -0.024 0.020 -1.199 0.231 -0.076 0.028
Self-esteem 2Y After - 1Y Before 4 -0.035 0.023 -1.515 0.130 -0.095 0.025
Self-esteem >2Y After - 1Y Before 4 -0.017 0.018 -0.941 0.347 -0.063 0.029

Graph

This graph illustrates the meta-analytic estimates of the five event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the five event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
gradu_res_ma_5dumm_dummies <- filter(gradu_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")

## Create variable on significance
gradu_res_ma_5dumm_dummies$sig <- ifelse(gradu_res_ma_5dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

gradu_res_ma_5dumm_dummies$trait <- factor(gradu_res_ma_5dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
gradu_res_ma_5dumm_dummies$Effect <- factor(gradu_res_ma_5dumm_dummies$Effect, 
                                             levels = c("DM2", "DM1", "DP1", "DP2", "DA2"), 
                                             labels = c("-2 Years", "-1 Year", "+1 Year",
                                                        "+2 Years", ">2 Years"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- gradu_res_ma_5dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
gradu_res_ma_5dumm_dummies$ID <- 1:nrow(gradu_res_ma_5dumm_dummies)

plot <- ggplot(data = gradu_res_ma_5dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 2.5, y = 0.28), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 2.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 4.5, y = 0.28), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

New Employment

jobbeg_res_ma_5dumm <- filter(res_ma_5dumm_long, event == "New employment")

jobbeg_res_ma_5dumm <- dplyr::select(jobbeg_res_ma_5dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the five event-related dummy variables. These effects describe within-person changes in our outcome variables between assessments at a certain time point before/after the event occurrence and assessments unrelated to the event occurrence. Significant effects (p < .01) are depicted in bold.

jobbeg_res_ma_5dumm_dummies <- filter(jobbeg_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2") %>% 
  dplyr::select(-DIFFR2_avg)

jobbeg_res_ma_5dumm_dummies$Effect <- recode(jobbeg_res_ma_5dumm_dummies$Effect, 
                                             "DM2" = "2 years before event",
                                             "DM1" = "1 year before event",
                                             "DP1" = "1 year after event",
                                             "DP2" = "2 years after event",
                                             "DA2" = "> 2 years after event")

## Create table
kable(jobbeg_res_ma_5dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(jobbeg_res_ma_5dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 2 years before event 5 0.016 0.011 1.437 0.151 -0.013 0.045
Agreeableness 1 year before event 5 0.022 0.016 1.421 0.155 -0.018 0.063
Agreeableness 1 year after event 5 0.033 0.011 3.082 0.002 0.005 0.061
Agreeableness 2 years after event 5 0.026 0.013 1.993 0.046 -0.008 0.059
Agreeableness > 2 years after event 5 0.002 0.002 0.718 0.473 -0.005 0.008
Conscientiousness 2 years before event 5 -0.006 0.021 -0.274 0.784 -0.060 0.049
Conscientiousness 1 year before event 5 0.023 0.017 1.368 0.171 -0.021 0.068
Conscientiousness 1 year after event 5 0.051 0.016 3.179 0.001 0.010 0.093
Conscientiousness 2 years after event 5 0.039 0.010 3.943 0.000 0.014 0.065
Conscientiousness > 2 years after event 5 0.003 0.002 1.702 0.089 -0.002 0.008
Extraversion 2 years before event 5 0.019 0.008 2.237 0.025 -0.003 0.040
Extraversion 1 year before event 5 -0.004 0.008 -0.473 0.636 -0.023 0.016
Extraversion 1 year after event 5 0.011 0.009 1.176 0.240 -0.013 0.035
Extraversion 2 years after event 5 -0.001 0.009 -0.163 0.870 -0.025 0.022
Extraversion > 2 years after event 5 0.002 0.002 1.444 0.149 -0.002 0.006
Emotional stability 2 years before event 5 -0.005 0.009 -0.518 0.604 -0.029 0.019
Emotional stability 1 year before event 5 -0.028 0.018 -1.550 0.121 -0.073 0.018
Emotional stability 1 year after event 5 0.031 0.011 2.843 0.004 0.003 0.058
Emotional stability 2 years after event 5 0.033 0.010 3.279 0.001 0.007 0.059
Emotional stability > 2 years after event 5 0.003 0.001 2.871 0.004 0.000 0.006
Openness 2 years before event 5 0.019 0.011 1.636 0.102 -0.011 0.048
Openness 1 year before event 5 0.023 0.012 1.886 0.059 -0.008 0.055
Openness 1 year after event 5 0.003 0.016 0.212 0.832 -0.038 0.045
Openness 2 years after event 5 0.001 0.011 0.081 0.935 -0.027 0.029
Openness > 2 years after event 5 0.004 0.002 1.772 0.076 -0.002 0.010
Life satisfaction 2 years before event 5 -0.008 0.012 -0.651 0.515 -0.037 0.022
Life satisfaction 1 year before event 5 -0.058 0.019 -2.970 0.003 -0.107 -0.008
Life satisfaction 1 year after event 5 0.020 0.005 3.810 0.000 0.007 0.034
Life satisfaction 2 years after event 5 0.020 0.006 3.375 0.001 0.005 0.035
Life satisfaction > 2 years after event 5 0.011 0.004 2.684 0.007 0.000 0.022
Self-esteem 2 years before event 3 -0.004 0.018 -0.199 0.843 -0.050 0.043
Self-esteem 1 year before event 3 -0.014 0.037 -0.385 0.700 -0.110 0.081
Self-esteem 1 year after event 3 0.001 0.023 0.061 0.952 -0.057 0.060
Self-esteem 2 years after event 3 0.008 0.022 0.365 0.715 -0.050 0.066
Self-esteem > 2 years after event 3 0.007 0.002 3.306 0.001 0.002 0.012

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the six linear contrasts that we used to examine personality changes occurring from specific pre-event to specific post-event assessments. Significant effects (p < .01) are depicted in bold.

jobbeg_res_ma_5dumm_contrast <- filter(jobbeg_res_ma_5dumm, Effect == "CONTRM2P1" |
                                       Effect == "CONTRM2P2" | Effect == "CONTRM2A2" |
                                       Effect == "CONTRM1P1" | Effect == "CONTRM1P2" |
                                       Effect == "CONTRM1A2") %>% 
  dplyr::select(-DIFFR2_avg)

jobbeg_res_ma_5dumm_contrast$Effect <- recode(jobbeg_res_ma_5dumm_contrast$Effect, 
                                             "CONTRM2P1" = "1Y After - 2Y Before",
                                             "CONTRM2P2" = "2Y After - 2Y Before",
                                             "CONTRM2A2" = ">2Y After - 2Y Before",
                                             "CONTRM1P1" = "1Y After - 1Y Before",
                                             "CONTRM1P2" = "2Y After - 1Y Before",
                                             "CONTRM1A2" = ">2Y After - 1Y Before")

## Create table
kable(jobbeg_res_ma_5dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(jobbeg_res_ma_5dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 1Y After - 2Y Before 5 0.019 0.018 1.064 0.287 -0.028 0.067
Agreeableness 2Y After - 2Y Before 5 0.007 0.013 0.517 0.605 -0.027 0.041
Agreeableness >2Y After - 2Y Before 5 -0.015 0.011 -1.379 0.168 -0.042 0.013
Agreeableness 1Y After - 1Y Before 5 0.016 0.023 0.695 0.487 -0.044 0.077
Agreeableness 2Y After - 1Y Before 5 0.007 0.023 0.308 0.758 -0.052 0.067
Agreeableness >2Y After - 1Y Before 5 -0.022 0.013 -1.632 0.103 -0.056 0.012
Conscientiousness 1Y After - 2Y Before 5 0.061 0.017 3.486 0.000 0.016 0.106
Conscientiousness 2Y After - 2Y Before 5 0.049 0.022 2.201 0.028 -0.008 0.107
Conscientiousness >2Y After - 2Y Before 5 0.010 0.020 0.494 0.621 -0.041 0.061
Conscientiousness 1Y After - 1Y Before 5 0.030 0.017 1.708 0.088 -0.015 0.075
Conscientiousness 2Y After - 1Y Before 5 0.018 0.018 0.993 0.321 -0.029 0.065
Conscientiousness >2Y After - 1Y Before 5 -0.020 0.016 -1.247 0.212 -0.060 0.021
Extraversion 1Y After - 2Y Before 5 -0.006 0.012 -0.491 0.623 -0.038 0.026
Extraversion 2Y After - 2Y Before 5 -0.021 0.011 -1.898 0.058 -0.050 0.008
Extraversion >2Y After - 2Y Before 5 -0.016 0.008 -2.029 0.042 -0.037 0.004
Extraversion 1Y After - 1Y Before 5 0.018 0.013 1.369 0.171 -0.016 0.053
Extraversion 2Y After - 1Y Before 5 0.002 0.010 0.171 0.864 -0.025 0.028
Extraversion >2Y After - 1Y Before 5 0.006 0.007 0.846 0.398 -0.013 0.025
Emotional stability 1Y After - 2Y Before 5 0.039 0.013 3.073 0.002 0.006 0.072
Emotional stability 2Y After - 2Y Before 5 0.039 0.013 3.026 0.002 0.006 0.072
Emotional stability >2Y After - 2Y Before 5 0.008 0.009 0.912 0.362 -0.015 0.032
Emotional stability 1Y After - 1Y Before 5 0.057 0.017 3.320 0.001 0.013 0.101
Emotional stability 2Y After - 1Y Before 5 0.059 0.018 3.328 0.001 0.013 0.104
Emotional stability >2Y After - 1Y Before 5 0.032 0.018 1.849 0.064 -0.013 0.078
Openness 1Y After - 2Y Before 5 -0.016 0.024 -0.681 0.496 -0.078 0.045
Openness 2Y After - 2Y Before 5 -0.016 0.023 -0.694 0.488 -0.074 0.043
Openness >2Y After - 2Y Before 5 -0.015 0.012 -1.249 0.212 -0.046 0.016
Openness 1Y After - 1Y Before 5 -0.020 0.013 -1.521 0.128 -0.053 0.014
Openness 2Y After - 1Y Before 5 -0.021 0.011 -1.922 0.055 -0.049 0.007
Openness >2Y After - 1Y Before 5 -0.019 0.011 -1.712 0.087 -0.047 0.010
Life satisfaction 1Y After - 2Y Before 5 0.025 0.009 2.860 0.004 0.003 0.048
Life satisfaction 2Y After - 2Y Before 5 0.024 0.010 2.346 0.019 -0.002 0.051
Life satisfaction >2Y After - 2Y Before 5 0.021 0.013 1.606 0.108 -0.013 0.055
Life satisfaction 1Y After - 1Y Before 5 0.067 0.013 5.095 0.000 0.033 0.100
Life satisfaction 2Y After - 1Y Before 5 0.057 0.008 7.081 0.000 0.036 0.078
Life satisfaction >2Y After - 1Y Before 5 0.068 0.016 4.188 0.000 0.026 0.110
Self-esteem 1Y After - 2Y Before 3 0.019 0.014 1.316 0.188 -0.018 0.055
Self-esteem 2Y After - 2Y Before 3 0.009 0.015 0.586 0.558 -0.030 0.048
Self-esteem >2Y After - 2Y Before 3 0.013 0.016 0.803 0.422 -0.028 0.053
Self-esteem 1Y After - 1Y Before 3 0.016 0.038 0.431 0.667 -0.081 0.113
Self-esteem 2Y After - 1Y Before 3 0.018 0.015 1.212 0.225 -0.020 0.056
Self-esteem >2Y After - 1Y Before 3 0.023 0.036 0.633 0.527 -0.070 0.115

Graph

This graph illustrates the meta-analytic estimates of the five event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the five event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
jobbeg_res_ma_5dumm_dummies <- filter(jobbeg_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")

## Create variable on significance
jobbeg_res_ma_5dumm_dummies$sig <- ifelse(jobbeg_res_ma_5dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

jobbeg_res_ma_5dumm_dummies$trait <- factor(jobbeg_res_ma_5dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
jobbeg_res_ma_5dumm_dummies$Effect <- factor(jobbeg_res_ma_5dumm_dummies$Effect, 
                                             levels = c("DM2", "DM1", "DP1", "DP2", "DA2"), 
                                             labels = c("-2 Years", "-1 Year", "+1 Year",
                                                        "+2 Years", ">2 Years"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- jobbeg_res_ma_5dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
jobbeg_res_ma_5dumm_dummies$ID <- 1:nrow(jobbeg_res_ma_5dumm_dummies)

plot <- ggplot(data = jobbeg_res_ma_5dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 2.5, y = 0.28), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 2.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 4.5, y = 0.28), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Unemployment

unemploy_res_ma_5dumm <- filter(res_ma_5dumm_long, event == "Unemployment")

unemploy_res_ma_5dumm <- dplyr::select(unemploy_res_ma_5dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the five event-related dummy variables. These effects describe within-person changes in our outcome variables between assessments at a certain time point before/after the event occurrence and assessments unrelated to the event occurrence. Significant effects (p < .01) are depicted in bold.

unemploy_res_ma_5dumm_dummies <- filter(unemploy_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2") %>% 
  dplyr::select(-DIFFR2_avg)

unemploy_res_ma_5dumm_dummies$Effect <- recode(unemploy_res_ma_5dumm_dummies$Effect, 
                                             "DM2" = "2 years before event",
                                             "DM1" = "1 year before event",
                                             "DP1" = "1 year after event",
                                             "DP2" = "2 years after event",
                                             "DA2" = "> 2 years after event")

## Create table
kable(unemploy_res_ma_5dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(unemploy_res_ma_5dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 2 years before event 6 0.011 0.042 0.274 0.784 -0.096 0.119
Agreeableness 1 year before event 6 -0.016 0.033 -0.476 0.634 -0.102 0.070
Agreeableness 1 year after event 6 0.013 0.018 0.735 0.463 -0.033 0.059
Agreeableness 2 years after event 6 0.015 0.020 0.741 0.459 -0.037 0.067
Agreeableness > 2 years after event 6 -0.004 0.005 -0.888 0.375 -0.016 0.008
Conscientiousness 2 years before event 6 -0.010 0.018 -0.574 0.566 -0.056 0.036
Conscientiousness 1 year before event 6 -0.019 0.023 -0.839 0.402 -0.079 0.040
Conscientiousness 1 year after event 6 -0.011 0.020 -0.554 0.580 -0.064 0.041
Conscientiousness 2 years after event 6 -0.010 0.022 -0.474 0.636 -0.067 0.046
Conscientiousness > 2 years after event 6 -0.004 0.002 -1.594 0.111 -0.010 0.002
Extraversion 2 years before event 6 0.015 0.012 1.203 0.229 -0.017 0.047
Extraversion 1 year before event 6 0.000 0.012 -0.037 0.971 -0.031 0.030
Extraversion 1 year after event 6 0.002 0.013 0.138 0.890 -0.031 0.035
Extraversion 2 years after event 6 -0.001 0.013 -0.064 0.949 -0.033 0.032
Extraversion > 2 years after event 6 0.001 0.003 0.548 0.584 -0.006 0.009
Emotional stability 2 years before event 6 -0.006 0.014 -0.410 0.682 -0.041 0.030
Emotional stability 1 year before event 6 -0.055 0.021 -2.647 0.008 -0.109 -0.001
Emotional stability 1 year after event 6 -0.034 0.016 -2.107 0.035 -0.075 0.008
Emotional stability 2 years after event 6 -0.008 0.018 -0.465 0.642 -0.055 0.038
Emotional stability > 2 years after event 6 -0.001 0.002 -0.604 0.546 -0.005 0.003
Openness 2 years before event 6 0.013 0.020 0.642 0.521 -0.039 0.064
Openness 1 year before event 6 -0.004 0.013 -0.311 0.756 -0.036 0.028
Openness 1 year after event 6 0.004 0.018 0.201 0.840 -0.042 0.050
Openness 2 years after event 6 0.007 0.034 0.216 0.829 -0.081 0.096
Openness > 2 years after event 6 0.002 0.001 1.637 0.102 -0.001 0.006
Life satisfaction 2 years before event 6 -0.026 0.010 -2.556 0.011 -0.052 0.000
Life satisfaction 1 year before event 6 -0.076 0.027 -2.806 0.005 -0.146 -0.006
Life satisfaction 1 year after event 6 -0.151 0.021 -7.272 0.000 -0.205 -0.098
Life satisfaction 2 years after event 6 -0.081 0.015 -5.251 0.000 -0.121 -0.041
Life satisfaction > 2 years after event 6 0.004 0.003 1.485 0.137 -0.003 0.012
Self-esteem 2 years before event 4 0.004 0.018 0.201 0.841 -0.044 0.051
Self-esteem 1 year before event 4 -0.032 0.018 -1.734 0.083 -0.079 0.015
Self-esteem 1 year after event 4 -0.056 0.019 -2.936 0.003 -0.105 -0.007
Self-esteem 2 years after event 4 -0.063 0.037 -1.719 0.086 -0.158 0.031
Self-esteem > 2 years after event 4 -0.009 0.009 -1.006 0.314 -0.032 0.014

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the six linear contrasts that we used to examine personality changes occurring from specific pre-event to specific post-event assessments. Significant effects (p < .01) are depicted in bold.

unemploy_res_ma_5dumm_contrast <- filter(unemploy_res_ma_5dumm, Effect == "CONTRM2P1" |
                                       Effect == "CONTRM2P2" | Effect == "CONTRM2A2" |
                                       Effect == "CONTRM1P1" | Effect == "CONTRM1P2" |
                                       Effect == "CONTRM1A2") %>% 
  dplyr::select(-DIFFR2_avg)

unemploy_res_ma_5dumm_contrast$Effect <- recode(unemploy_res_ma_5dumm_contrast$Effect, 
                                             "CONTRM2P1" = "1Y After - 2Y Before",
                                             "CONTRM2P2" = "2Y After - 2Y Before",
                                             "CONTRM2A2" = ">2Y After - 2Y Before",
                                             "CONTRM1P1" = "1Y After - 1Y Before",
                                             "CONTRM1P2" = "2Y After - 1Y Before",
                                             "CONTRM1A2" = ">2Y After - 1Y Before")

## Create table
kable(unemploy_res_ma_5dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(unemploy_res_ma_5dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 1Y After - 2Y Before 6 0.000 0.043 0.004 0.997 -0.112 0.112
Agreeableness 2Y After - 2Y Before 6 -0.006 0.031 -0.187 0.852 -0.084 0.073
Agreeableness >2Y After - 2Y Before 6 -0.017 0.036 -0.465 0.642 -0.111 0.077
Agreeableness 1Y After - 1Y Before 6 0.007 0.026 0.278 0.781 -0.060 0.075
Agreeableness 2Y After - 1Y Before 6 0.013 0.018 0.724 0.469 -0.034 0.060
Agreeableness >2Y After - 1Y Before 6 0.007 0.028 0.258 0.796 -0.064 0.079
Conscientiousness 1Y After - 2Y Before 6 0.007 0.034 0.203 0.839 -0.080 0.094
Conscientiousness 2Y After - 2Y Before 6 0.002 0.031 0.080 0.936 -0.078 0.083
Conscientiousness >2Y After - 2Y Before 6 0.007 0.017 0.400 0.689 -0.037 0.050
Conscientiousness 1Y After - 1Y Before 6 0.004 0.017 0.234 0.815 -0.041 0.049
Conscientiousness 2Y After - 1Y Before 6 0.008 0.027 0.302 0.763 -0.061 0.077
Conscientiousness >2Y After - 1Y Before 6 0.015 0.022 0.698 0.485 -0.042 0.072
Extraversion 1Y After - 2Y Before 6 -0.014 0.025 -0.561 0.575 -0.077 0.050
Extraversion 2Y After - 2Y Before 6 -0.015 0.017 -0.854 0.393 -0.060 0.030
Extraversion >2Y After - 2Y Before 6 -0.013 0.012 -1.062 0.288 -0.044 0.018
Extraversion 1Y After - 1Y Before 6 0.001 0.028 0.038 0.970 -0.071 0.073
Extraversion 2Y After - 1Y Before 6 0.005 0.015 0.311 0.756 -0.034 0.044
Extraversion >2Y After - 1Y Before 6 0.003 0.011 0.303 0.762 -0.026 0.032
Emotional stability 1Y After - 2Y Before 6 -0.035 0.018 -1.934 0.053 -0.082 0.012
Emotional stability 2Y After - 2Y Before 6 0.001 0.018 0.030 0.976 -0.047 0.048
Emotional stability >2Y After - 2Y Before 6 0.004 0.013 0.302 0.762 -0.030 0.038
Emotional stability 1Y After - 1Y Before 6 0.012 0.021 0.548 0.584 -0.043 0.066
Emotional stability 2Y After - 1Y Before 6 0.050 0.029 1.753 0.080 -0.024 0.124
Emotional stability >2Y After - 1Y Before 6 0.054 0.020 2.673 0.008 0.002 0.105
Openness 1Y After - 2Y Before 6 -0.004 0.037 -0.116 0.907 -0.100 0.091
Openness 2Y After - 2Y Before 6 -0.001 0.044 -0.027 0.979 -0.113 0.111
Openness >2Y After - 2Y Before 6 -0.012 0.020 -0.578 0.563 -0.063 0.040
Openness 1Y After - 1Y Before 6 0.008 0.020 0.414 0.679 -0.044 0.060
Openness 2Y After - 1Y Before 6 0.007 0.037 0.191 0.849 -0.089 0.103
Openness >2Y After - 1Y Before 6 0.006 0.012 0.505 0.614 -0.025 0.037
Life satisfaction 1Y After - 2Y Before 6 -0.133 0.022 -5.929 0.000 -0.190 -0.075
Life satisfaction 2Y After - 2Y Before 6 -0.061 0.019 -3.221 0.001 -0.110 -0.012
Life satisfaction >2Y After - 2Y Before 6 0.027 0.013 2.069 0.038 -0.007 0.061
Life satisfaction 1Y After - 1Y Before 6 -0.070 0.026 -2.733 0.006 -0.136 -0.004
Life satisfaction 2Y After - 1Y Before 6 0.006 0.020 0.287 0.774 -0.045 0.056
Life satisfaction >2Y After - 1Y Before 6 0.077 0.030 2.600 0.009 0.001 0.153
Self-esteem 1Y After - 2Y Before 4 -0.054 0.022 -2.446 0.014 -0.111 0.003
Self-esteem 2Y After - 2Y Before 4 -0.054 0.022 -2.391 0.017 -0.112 0.004
Self-esteem >2Y After - 2Y Before 4 -0.008 0.018 -0.448 0.654 -0.053 0.037
Self-esteem 1Y After - 1Y Before 4 -0.028 0.030 -0.930 0.352 -0.106 0.050
Self-esteem 2Y After - 1Y Before 4 -0.025 0.037 -0.670 0.503 -0.122 0.071
Self-esteem >2Y After - 1Y Before 4 0.028 0.017 1.609 0.108 -0.017 0.073

Graph

This graph illustrates the meta-analytic estimates of the five event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the five event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
unemploy_res_ma_5dumm_dummies <- filter(unemploy_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")

## Create variable on significance
unemploy_res_ma_5dumm_dummies$sig <- ifelse(unemploy_res_ma_5dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

unemploy_res_ma_5dumm_dummies$trait <- factor(unemploy_res_ma_5dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
unemploy_res_ma_5dumm_dummies$Effect <- factor(unemploy_res_ma_5dumm_dummies$Effect, 
                                             levels = c("DM2", "DM1", "DP1", "DP2", "DA2"), 
                                             labels = c("-2 Years", "-1 Year", "+1 Year",
                                                        "+2 Years", ">2 Years"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- unemploy_res_ma_5dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
unemploy_res_ma_5dumm_dummies$ID <- 1:nrow(unemploy_res_ma_5dumm_dummies)

plot <- ggplot(data = unemploy_res_ma_5dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 2.5, y = 0.28), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 2.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 4.5, y = 0.28), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Retirement

retire_res_ma_5dumm <- filter(res_ma_5dumm_long, event == "Retirement")

retire_res_ma_5dumm <- dplyr::select(retire_res_ma_5dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the five event-related dummy variables. These effects describe within-person changes in our outcome variables between assessments at a certain time point before/after the event occurrence and assessments unrelated to the event occurrence. Significant effects (p < .01) are depicted in bold.

retire_res_ma_5dumm_dummies <- filter(retire_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2") %>% 
  dplyr::select(-DIFFR2_avg)

retire_res_ma_5dumm_dummies$Effect <- recode(retire_res_ma_5dumm_dummies$Effect, 
                                             "DM2" = "2 years before event",
                                             "DM1" = "1 year before event",
                                             "DP1" = "1 year after event",
                                             "DP2" = "2 years after event",
                                             "DA2" = "> 2 years after event")

## Create table
kable(retire_res_ma_5dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(retire_res_ma_5dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 2 years before event 5 0.022 0.019 1.168 0.243 -0.027 0.072
Agreeableness 1 year before event 5 -0.008 0.012 -0.683 0.495 -0.040 0.023
Agreeableness 1 year after event 5 0.013 0.016 0.810 0.418 -0.028 0.054
Agreeableness 2 years after event 5 0.017 0.021 0.805 0.421 -0.036 0.069
Agreeableness > 2 years after event 5 -0.001 0.003 -0.342 0.732 -0.008 0.006
Conscientiousness 2 years before event 5 0.023 0.011 1.969 0.049 -0.007 0.052
Conscientiousness 1 year before event 5 0.017 0.011 1.482 0.138 -0.012 0.046
Conscientiousness 1 year after event 5 -0.014 0.017 -0.778 0.436 -0.058 0.031
Conscientiousness 2 years after event 5 -0.037 0.026 -1.414 0.157 -0.104 0.030
Conscientiousness > 2 years after event 5 -0.001 0.002 -0.369 0.712 -0.005 0.004
Extraversion 2 years before event 5 -0.010 0.015 -0.695 0.487 -0.048 0.028
Extraversion 1 year before event 5 0.008 0.012 0.668 0.504 -0.022 0.038
Extraversion 1 year after event 5 0.008 0.011 0.679 0.497 -0.022 0.037
Extraversion 2 years after event 5 -0.006 0.017 -0.327 0.744 -0.049 0.038
Extraversion > 2 years after event 5 0.001 0.003 0.363 0.717 -0.007 0.010
Emotional stability 2 years before event 5 -0.007 0.012 -0.617 0.537 -0.038 0.023
Emotional stability 1 year before event 5 -0.026 0.017 -1.554 0.120 -0.068 0.017
Emotional stability 1 year after event 5 0.002 0.023 0.100 0.921 -0.056 0.061
Emotional stability 2 years after event 5 0.023 0.016 1.401 0.161 -0.019 0.064
Emotional stability > 2 years after event 5 -0.004 0.002 -1.729 0.084 -0.009 0.002
Openness 2 years before event 5 0.008 0.011 0.702 0.483 -0.021 0.038
Openness 1 year before event 5 0.010 0.011 0.943 0.346 -0.018 0.039
Openness 1 year after event 5 0.015 0.013 1.082 0.279 -0.020 0.049
Openness 2 years after event 5 0.012 0.012 1.011 0.312 -0.019 0.043
Openness > 2 years after event 5 0.003 0.003 1.084 0.278 -0.004 0.010
Life satisfaction 2 years before event 5 -0.014 0.019 -0.706 0.480 -0.063 0.036
Life satisfaction 1 year before event 5 -0.026 0.022 -1.187 0.235 -0.084 0.031
Life satisfaction 1 year after event 5 0.045 0.028 1.636 0.102 -0.026 0.117
Life satisfaction 2 years after event 5 0.038 0.021 1.784 0.074 -0.017 0.093
Life satisfaction > 2 years after event 5 0.004 0.008 0.530 0.596 -0.017 0.026
Self-esteem 2 years before event 3 -0.004 0.064 -0.060 0.952 -0.169 0.161
Self-esteem 1 year before event 3 0.011 0.019 0.572 0.567 -0.039 0.061
Self-esteem 1 year after event 3 0.010 0.034 0.289 0.773 -0.078 0.097
Self-esteem 2 years after event 3 0.015 0.020 0.727 0.467 -0.037 0.066
Self-esteem > 2 years after event 3 -0.002 0.003 -0.575 0.565 -0.009 0.005

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the six linear contrasts that we used to examine personality changes occurring from specific pre-event to specific post-event assessments. Significant effects (p < .01) are depicted in bold.

retire_res_ma_5dumm_contrast <- filter(retire_res_ma_5dumm, Effect == "CONTRM2P1" |
                                       Effect == "CONTRM2P2" | Effect == "CONTRM2A2" |
                                       Effect == "CONTRM1P1" | Effect == "CONTRM1P2" |
                                       Effect == "CONTRM1A2") %>% 
  dplyr::select(-DIFFR2_avg)

retire_res_ma_5dumm_contrast$Effect <- recode(retire_res_ma_5dumm_contrast$Effect, 
                                             "CONTRM2P1" = "1Y After - 2Y Before",
                                             "CONTRM2P2" = "2Y After - 2Y Before",
                                             "CONTRM2A2" = ">2Y After - 2Y Before",
                                             "CONTRM1P1" = "1Y After - 1Y Before",
                                             "CONTRM1P2" = "2Y After - 1Y Before",
                                             "CONTRM1A2" = ">2Y After - 1Y Before")

## Create table
kable(retire_res_ma_5dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(retire_res_ma_5dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness 1Y After - 2Y Before 5 -0.010 0.031 -0.326 0.744 -0.089 0.069
Agreeableness 2Y After - 2Y Before 5 -0.006 0.023 -0.252 0.801 -0.066 0.054
Agreeableness >2Y After - 2Y Before 5 -0.022 0.018 -1.171 0.241 -0.069 0.026
Agreeableness 1Y After - 1Y Before 5 0.022 0.021 1.054 0.292 -0.032 0.077
Agreeableness 2Y After - 1Y Before 5 0.023 0.015 1.492 0.136 -0.017 0.063
Agreeableness >2Y After - 1Y Before 5 0.009 0.012 0.811 0.417 -0.020 0.039
Conscientiousness 1Y After - 2Y Before 5 -0.036 0.022 -1.662 0.097 -0.092 0.020
Conscientiousness 2Y After - 2Y Before 5 -0.055 0.028 -1.927 0.054 -0.128 0.018
Conscientiousness >2Y After - 2Y Before 5 -0.022 0.011 -1.960 0.050 -0.050 0.007
Conscientiousness 1Y After - 1Y Before 5 -0.037 0.025 -1.506 0.132 -0.101 0.026
Conscientiousness 2Y After - 1Y Before 5 -0.062 0.036 -1.723 0.085 -0.154 0.031
Conscientiousness >2Y After - 1Y Before 5 -0.016 0.011 -1.461 0.144 -0.044 0.012
Extraversion 1Y After - 2Y Before 5 0.022 0.016 1.374 0.170 -0.019 0.062
Extraversion 2Y After - 2Y Before 5 0.008 0.014 0.534 0.593 -0.029 0.044
Extraversion >2Y After - 2Y Before 5 0.012 0.014 0.842 0.400 -0.024 0.048
Extraversion 1Y After - 1Y Before 5 0.002 0.013 0.149 0.881 -0.032 0.036
Extraversion 2Y After - 1Y Before 5 -0.013 0.013 -1.026 0.305 -0.047 0.020
Extraversion >2Y After - 1Y Before 5 -0.006 0.010 -0.579 0.562 -0.031 0.019
Emotional stability 1Y After - 2Y Before 5 0.011 0.016 0.716 0.474 -0.029 0.052
Emotional stability 2Y After - 2Y Before 5 0.031 0.016 1.954 0.051 -0.010 0.073
Emotional stability >2Y After - 2Y Before 5 0.004 0.011 0.360 0.719 -0.025 0.034
Emotional stability 1Y After - 1Y Before 5 0.023 0.021 1.083 0.279 -0.032 0.078
Emotional stability 2Y After - 1Y Before 5 0.047 0.020 2.377 0.017 -0.004 0.098
Emotional stability >2Y After - 1Y Before 5 0.022 0.017 1.317 0.188 -0.021 0.066
Openness 1Y After - 2Y Before 5 0.008 0.017 0.451 0.652 -0.037 0.053
Openness 2Y After - 2Y Before 5 0.005 0.015 0.350 0.726 -0.033 0.043
Openness >2Y After - 2Y Before 5 -0.004 0.011 -0.336 0.737 -0.032 0.025
Openness 1Y After - 1Y Before 5 0.007 0.015 0.479 0.632 -0.032 0.047
Openness 2Y After - 1Y Before 5 0.004 0.014 0.284 0.777 -0.032 0.040
Openness >2Y After - 1Y Before 5 -0.006 0.011 -0.557 0.578 -0.033 0.021
Life satisfaction 1Y After - 2Y Before 5 0.055 0.035 1.556 0.120 -0.036 0.146
Life satisfaction 2Y After - 2Y Before 5 0.050 0.032 1.558 0.119 -0.033 0.133
Life satisfaction >2Y After - 2Y Before 5 0.020 0.025 0.800 0.423 -0.044 0.083
Life satisfaction 1Y After - 1Y Before 5 0.059 0.021 2.779 0.005 0.004 0.115
Life satisfaction 2Y After - 1Y Before 5 0.064 0.025 2.586 0.010 0.000 0.129
Life satisfaction >2Y After - 1Y Before 5 0.035 0.024 1.464 0.143 -0.026 0.096
Self-esteem 1Y After - 2Y Before 3 0.034 0.023 1.473 0.141 -0.026 0.094
Self-esteem 2Y After - 2Y Before 3 0.029 0.028 1.061 0.288 -0.042 0.100
Self-esteem >2Y After - 2Y Before 3 -0.001 0.069 -0.018 0.985 -0.180 0.177
Self-esteem 1Y After - 1Y Before 3 0.049 0.103 0.479 0.632 -0.215 0.314
Self-esteem 2Y After - 1Y Before 3 0.004 0.023 0.164 0.869 -0.056 0.064
Self-esteem >2Y After - 1Y Before 3 -0.013 0.018 -0.722 0.470 -0.060 0.034

Graph

This graph illustrates the meta-analytic estimates of the five event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the five event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
retire_res_ma_5dumm_dummies <- filter(retire_res_ma_5dumm, Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")

## Create variable on significance
retire_res_ma_5dumm_dummies$sig <- ifelse(retire_res_ma_5dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

retire_res_ma_5dumm_dummies$trait <- factor(retire_res_ma_5dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
retire_res_ma_5dumm_dummies$Effect <- factor(retire_res_ma_5dumm_dummies$Effect, 
                                             levels = c("DM2", "DM1", "DP1", "DP2", "DA2"), 
                                             labels = c("-2 Years", "-1 Year", "+1 Year",
                                                        "+2 Years", ">2 Years"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- retire_res_ma_5dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
retire_res_ma_5dumm_dummies$ID <- 1:nrow(retire_res_ma_5dumm_dummies)

plot <- ggplot(data = retire_res_ma_5dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 2.5, y = 0.28), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 2.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 4.5, y = 0.28), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Patterns Across Life Events

Proportion of Significant Effects

res_ma_5dumm_long_dummmies <- filter(res_ma_5dumm_long,  Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")
res_ma_5dumm_long_dummmies$sig <- ifelse(res_ma_5dumm_long_dummmies$p < 0.01, 1, 0)

dummies.sig <- as.data.frame(prop.table(table(res_ma_5dumm_long_dummmies$sig, res_ma_5dumm_long_dummmies$trait), margin = 2))

dummies.sig <- filter(dummies.sig, Var1 == 1) %>% select(-Var1)

kable(dummies.sig
      , caption="**Proportion of significant effects across outcomes**"
      , escape=FALSE
      , label = NA
      , digits = 2 
      , row.names = FALSE
      , col.names = c("Trait", "Relative frequency")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") 
Proportion of significant effects across outcomes
Trait Relative frequency
Agreeableness 0.08
Conscientiousness 0.10
Emotional stability 0.14
Extraversion 0.04
Life satisfaction 0.54
Openness 0.12
Self-esteem 0.14

Average Effect Size of Significant Effects

res_ma_5dumm_long_dummmies <- filter(res_ma_5dumm_long,  Effect == "DM2" |
                                       Effect == "DM1" | Effect == "DP1" |
                                       Effect == "DP2" | Effect == "DA2")
res_ma_5dumm_long_dummmies$sig <- ifelse(res_ma_5dumm_long_dummmies$p < 0.01, 1, 0)

dummies.sig <- filter(res_ma_5dumm_long_dummmies, sig == 1)

dummies.sig$ES <- abs(dummies.sig$ES)

es <- describeBy(dummies.sig$ES, group = dummies.sig$trait, mat = TRUE)  %>% select(Trait = group1, Mean = mean, SD = sd)

kable(es
      , caption="**Average effect size of significant effects**"
      , escape=FALSE
      , label = NA
      , digits = 2 
      , row.names = FALSE) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") 
Average effect size of significant effects
Trait Mean SD
Agreeableness 0.06 0.02
Conscientiousness 0.05 0.03
Emotional stability 0.04 0.04
Extraversion 0.06 0.03
Life satisfaction 0.13 0.11
Openness 0.04 0.03
Self-esteem 0.05 0.02

R2 Values

r2.values <- describeBy(res_ma_5dumm_long$DIFFR2_avg, group = res_ma_5dumm_long$trait, mat = TRUE)  %>% select(Trait = group1, Mean = mean, SD = sd)

kable(r2.values
      , caption="**Average R^2^ values across outcomes**"
      , escape=FALSE
      , label = NA
      , digits = 2 
      , row.names = FALSE) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") 
Average R2 values across outcomes
Trait Mean SD
Agreeableness 0.04 0.01
Conscientiousness 0.05 0.02
Emotional stability 0.05 0.03
Extraversion 0.03 0.01
Life satisfaction 0.17 0.09
Openness 0.04 0.01
Self-esteem 0.06 0.02

These R2 values indicate how much incremental variance the event-related dummies explain in the respective outcome beyond stable between-person differences and age-related changes.

Section 3: Model With Two Dummies

As an additional analysis, we explored the consistency of our findings when using a different way to specify the event-related dummies. To do so, we estimated fixed-effects the just two event-related dummies:

  • DPre = 1 for all assessments that took place up to 2 years prior to the occurrence of the target event
  • DPost = 1 for all assessments that took place after the occurrence of the target event.
## Results across datasets
res_ma_2dumm_long <- res_ma_2dumm %>% 
  pivot_longer(-c("event", "trait", "DIFFR2_avg"),
               names_sep = "_",
               names_to = c("Effect", "Names")) %>% 
  pivot_wider(names_from = ("Names"), 
              values_from = "value")

## Results across datasets and events
res_ma_event_2dumm_long <- res_ma_event_2dumm %>% 
  pivot_longer(-c("EventType", "trait", "DIFFR2_avg"),
               names_sep = "_",
               names_to = c("Effect", "Names")) %>% 
  pivot_wider(names_from = ("Names"), 
              values_from = "value")

New Relationship

relbeg_res_ma_2dumm <- filter(res_ma_2dumm_long, event == "New relationship")

relbeg_res_ma_2dumm <- dplyr::select(relbeg_res_ma_2dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the two event-related dummy variables. These dummies quantify changes in our outcome variables across assessments occurring up to 2 years prior to or any time after the occurrence of a life event. Significant effects (p < .01) are depicted in bold.

relbeg_res_ma_2dumm_dummies <- filter(relbeg_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post") %>% 
  dplyr::select(-DIFFR2_avg)

relbeg_res_ma_2dumm_dummies$Effect <- recode(relbeg_res_ma_2dumm_dummies$Effect, 
                                             "Pre" = "Changes before event",
                                             "Post" = "Changes after event")

## Create table
kable(relbeg_res_ma_2dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(relbeg_res_ma_2dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness Changes before event 7 0.011 0.025 0.452 0.651 -0.054 0.076
Agreeableness Changes after event 7 0.011 0.012 0.974 0.330 -0.019 0.041
Conscientiousness Changes before event 7 -0.015 0.022 -0.676 0.499 -0.071 0.042
Conscientiousness Changes after event 7 0.019 0.020 0.924 0.356 -0.033 0.071
Extraversion Changes before event 7 0.032 0.011 2.903 0.004 0.004 0.061
Extraversion Changes after event 7 0.000 0.010 0.004 0.997 -0.027 0.027
Emotional stability Changes before event 7 -0.014 0.017 -0.825 0.410 -0.057 0.029
Emotional stability Changes after event 7 -0.005 0.013 -0.389 0.697 -0.039 0.029
Openness Changes before event 7 0.043 0.019 2.263 0.024 -0.006 0.093
Openness Changes after event 7 0.009 0.018 0.517 0.605 -0.038 0.057
Life satisfaction Changes before event 7 -0.024 0.040 -0.596 0.551 -0.128 0.080
Life satisfaction Changes after event 7 0.121 0.038 3.175 0.001 0.023 0.220
Self-esteem Changes before event 5 0.123 0.135 0.915 0.360 -0.224 0.471
Self-esteem Changes after event 5 0.060 0.014 4.383 0.000 0.025 0.095

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the linear contrast DPre – DPost = 0 that allowed us to examine whether there were any personality trait changes from pre-event to post-event personality assessments. Significant effects (p < .01) are depicted in bold.

relbeg_res_ma_2dumm_contrast <- filter(relbeg_res_ma_2dumm, Effect == "CONTRPrePost") %>% 
  dplyr::select(-DIFFR2_avg)

relbeg_res_ma_2dumm_contrast$Effect <- recode(relbeg_res_ma_2dumm_contrast$Effect, 
                                             "CONTRPrePost" = "After - Before")

## Create table
kable(relbeg_res_ma_2dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(relbeg_res_ma_2dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness After - Before 7 0.003 0.023 0.141 0.888 -0.057 0.064
Conscientiousness After - Before 7 0.039 0.022 1.790 0.073 -0.017 0.096
Extraversion After - Before 7 -0.026 0.011 -2.385 0.017 -0.054 0.002
Emotional stability After - Before 7 0.013 0.018 0.741 0.459 -0.032 0.058
Openness After - Before 7 -0.038 0.020 -1.867 0.062 -0.090 0.014
Life satisfaction After - Before 7 0.152 0.023 6.763 0.000 0.094 0.210
Self-esteem After - Before 5 -0.049 0.112 -0.437 0.662 -0.338 0.240

Graph

This graph illustrates the meta-analytic estimates of the two event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the two event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
relbeg_res_ma_2dumm_dummies <- filter(relbeg_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post")

## Create variable on significance
relbeg_res_ma_2dumm_dummies$sig <- ifelse(relbeg_res_ma_2dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

relbeg_res_ma_2dumm_dummies$trait <- factor(relbeg_res_ma_2dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
relbeg_res_ma_2dumm_dummies$Effect <- factor(relbeg_res_ma_2dumm_dummies$Effect, 
                                             levels = c("Pre", "Post"), 
                                             labels = c("Before", "After"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- relbeg_res_ma_2dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
relbeg_res_ma_2dumm_dummies$ID <- 1:nrow(relbeg_res_ma_2dumm_dummies)

plot <- ggplot(data = relbeg_res_ma_2dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 1.5, y = 0.29), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 1.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 2.1, y = -0.25), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Marriage

marriage_res_ma_2dumm <- filter(res_ma_2dumm_long, event == "Marriage")

marriage_res_ma_2dumm <- dplyr::select(marriage_res_ma_2dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the two event-related dummy variables. These dummies quantify changes in our outcome variables across assessments occurring up to 2 years prior to or any time after the occurrence of a life event. Significant effects (p < .01) are depicted in bold.

marriage_res_ma_2dumm_dummies <- filter(marriage_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post") %>% 
  dplyr::select(-DIFFR2_avg)

marriage_res_ma_2dumm_dummies$Effect <- recode(marriage_res_ma_2dumm_dummies$Effect, 
                                             "Pre" = "Changes before event",
                                             "Post" = "Changes after event")

## Create table
kable(marriage_res_ma_2dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(marriage_res_ma_2dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness Changes before event 7 0.041 0.015 2.830 0.005 0.004 0.079
Agreeableness Changes after event 7 -0.020 0.015 -1.302 0.193 -0.059 0.019
Conscientiousness Changes before event 7 0.048 0.013 3.750 0.000 0.015 0.081
Conscientiousness Changes after event 7 0.005 0.011 0.485 0.628 -0.023 0.034
Extraversion Changes before event 7 0.005 0.010 0.448 0.654 -0.022 0.031
Extraversion Changes after event 7 -0.023 0.009 -2.490 0.013 -0.048 0.001
Emotional stability Changes before event 7 0.029 0.012 2.434 0.015 -0.002 0.059
Emotional stability Changes after event 7 0.018 0.011 1.660 0.097 -0.010 0.046
Openness Changes before event 7 -0.001 0.020 -0.061 0.952 -0.052 0.050
Openness Changes after event 7 -0.057 0.031 -1.822 0.068 -0.137 0.023
Life satisfaction Changes before event 7 0.161 0.014 11.263 0.000 0.124 0.198
Life satisfaction Changes after event 7 0.204 0.020 10.023 0.000 0.151 0.256
Self-esteem Changes before event 5 0.067 0.026 2.558 0.011 0.000 0.135
Self-esteem Changes after event 5 0.028 0.015 1.891 0.059 -0.010 0.067

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the linear contrast DPre – DPost = 0 that allowed us to examine whether there were any personality trait changes from pre-event to post-event personality assessments. Significant effects (p < .01) are depicted in bold.

marriage_res_ma_2dumm_contrast <- filter(marriage_res_ma_2dumm, Effect == "CONTRPrePost") %>% 
  dplyr::select(-DIFFR2_avg)

marriage_res_ma_2dumm_contrast$Effect <- recode(marriage_res_ma_2dumm_contrast$Effect, 
                                             "CONTRPrePost" = "After - Before")

## Create table
kable(marriage_res_ma_2dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(marriage_res_ma_2dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness After - Before 7 -0.065 0.022 -2.960 0.003 -0.121 -0.008
Conscientiousness After - Before 7 -0.045 0.010 -4.373 0.000 -0.072 -0.019
Extraversion After - Before 7 -0.029 0.009 -3.119 0.002 -0.053 -0.005
Emotional stability After - Before 7 -0.013 0.011 -1.256 0.209 -0.041 0.014
Openness After - Before 7 -0.065 0.015 -4.342 0.000 -0.104 -0.026
Life satisfaction After - Before 7 0.034 0.016 2.111 0.035 -0.007 0.075
Self-esteem After - Before 5 -0.035 0.018 -2.002 0.045 -0.080 0.010

Graph

This graph illustrates the meta-analytic estimates of the two event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the two event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
marriage_res_ma_2dumm_dummies <- filter(marriage_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post")

## Create variable on significance
marriage_res_ma_2dumm_dummies$sig <- ifelse(marriage_res_ma_2dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

marriage_res_ma_2dumm_dummies$trait <- factor(marriage_res_ma_2dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
marriage_res_ma_2dumm_dummies$Effect <- factor(marriage_res_ma_2dumm_dummies$Effect, 
                                             levels = c("Pre", "Post"), 
                                             labels = c("Before", "After"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- marriage_res_ma_2dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
marriage_res_ma_2dumm_dummies$ID <- 1:nrow(marriage_res_ma_2dumm_dummies)

plot <- ggplot(data = marriage_res_ma_2dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 1.5, y = 0.29), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 1.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 2.1, y = -0.25), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Childbirth

child_res_ma_2dumm <- filter(res_ma_2dumm_long, event == "Childbirth")

child_res_ma_2dumm <- dplyr::select(child_res_ma_2dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the two event-related dummy variables. These dummies quantify changes in our outcome variables across assessments occurring up to 2 years prior to or any time after the occurrence of a life event. Significant effects (p < .01) are depicted in bold.

child_res_ma_2dumm_dummies <- filter(child_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post") %>% 
  dplyr::select(-DIFFR2_avg)

child_res_ma_2dumm_dummies$Effect <- recode(child_res_ma_2dumm_dummies$Effect, 
                                             "Pre" = "Changes before event",
                                             "Post" = "Changes after event")

## Create table
kable(child_res_ma_2dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(child_res_ma_2dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness Changes before event 7 0.004 0.013 0.341 0.733 -0.029 0.038
Agreeableness Changes after event 7 -0.056 0.037 -1.493 0.135 -0.152 0.040
Conscientiousness Changes before event 7 0.004 0.020 0.213 0.832 -0.048 0.056
Conscientiousness Changes after event 7 -0.050 0.018 -2.710 0.007 -0.097 -0.002
Extraversion Changes before event 7 -0.015 0.010 -1.501 0.133 -0.040 0.011
Extraversion Changes after event 7 -0.030 0.009 -3.152 0.002 -0.054 -0.005
Emotional stability Changes before event 7 0.027 0.014 1.905 0.057 -0.010 0.064
Emotional stability Changes after event 7 0.015 0.035 0.424 0.672 -0.075 0.105
Openness Changes before event 7 -0.038 0.015 -2.517 0.012 -0.078 0.001
Openness Changes after event 7 -0.075 0.023 -3.240 0.001 -0.135 -0.015
Life satisfaction Changes before event 7 0.104 0.017 6.146 0.000 0.060 0.147
Life satisfaction Changes after event 7 0.081 0.034 2.353 0.019 -0.008 0.169
Self-esteem Changes before event 5 0.054 0.017 3.198 0.001 0.011 0.098
Self-esteem Changes after event 5 0.022 0.014 1.548 0.122 -0.015 0.059

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the linear contrast DPre – DPost = 0 that allowed us to examine whether there were any personality trait changes from pre-event to post-event personality assessments. Significant effects (p < .01) are depicted in bold.

child_res_ma_2dumm_contrast <- filter(child_res_ma_2dumm, Effect == "CONTRPrePost") %>% 
  dplyr::select(-DIFFR2_avg)

child_res_ma_2dumm_contrast$Effect <- recode(child_res_ma_2dumm_contrast$Effect, 
                                             "CONTRPrePost" = "After - Before")

## Create table
kable(child_res_ma_2dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(child_res_ma_2dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness After - Before 7 -0.045 0.021 -2.204 0.028 -0.099 0.008
Conscientiousness After - Before 7 -0.055 0.021 -2.571 0.010 -0.109 0.000
Extraversion After - Before 7 -0.022 0.017 -1.254 0.210 -0.066 0.023
Emotional stability After - Before 7 -0.006 0.025 -0.241 0.810 -0.069 0.057
Openness After - Before 7 -0.037 0.009 -4.121 0.000 -0.060 -0.014
Life satisfaction After - Before 7 -0.016 0.027 -0.606 0.545 -0.086 0.053
Self-esteem After - Before 5 -0.031 0.013 -2.295 0.022 -0.065 0.004

Graph

This graph illustrates the meta-analytic estimates of the two event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the two event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
child_res_ma_2dumm_dummies <- filter(child_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post")

## Create variable on significance
child_res_ma_2dumm_dummies$sig <- ifelse(child_res_ma_2dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

child_res_ma_2dumm_dummies$trait <- factor(child_res_ma_2dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
child_res_ma_2dumm_dummies$Effect <- factor(child_res_ma_2dumm_dummies$Effect, 
                                             levels = c("Pre", "Post"), 
                                             labels = c("Before", "After"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- child_res_ma_2dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
child_res_ma_2dumm_dummies$ID <- 1:nrow(child_res_ma_2dumm_dummies)

plot <- ggplot(data = child_res_ma_2dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 1.5, y = 0.29), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 1.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 2.1, y = -0.25), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Separation

separat_res_ma_2dumm <- filter(res_ma_2dumm_long, event == "Separation")

separat_res_ma_2dumm <- dplyr::select(separat_res_ma_2dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the two event-related dummy variables. These dummies quantify changes in our outcome variables across assessments occurring up to 2 years prior to or any time after the occurrence of a life event. Significant effects (p < .01) are depicted in bold.

separat_res_ma_2dumm_dummies <- filter(separat_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post") %>% 
  dplyr::select(-DIFFR2_avg)

separat_res_ma_2dumm_dummies$Effect <- recode(separat_res_ma_2dumm_dummies$Effect, 
                                             "Pre" = "Changes before event",
                                             "Post" = "Changes after event")

## Create table
kable(separat_res_ma_2dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(separat_res_ma_2dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness Changes before event 6 -0.002 0.016 -0.127 0.899 -0.044 0.040
Agreeableness Changes after event 6 0.059 0.017 3.552 0.000 0.016 0.102
Conscientiousness Changes before event 6 -0.014 0.014 -1.012 0.312 -0.050 0.022
Conscientiousness Changes after event 6 -0.015 0.012 -1.217 0.224 -0.047 0.017
Extraversion Changes before event 6 -0.007 0.021 -0.330 0.742 -0.062 0.048
Extraversion Changes after event 6 0.019 0.018 1.085 0.278 -0.026 0.065
Emotional stability Changes before event 6 -0.053 0.034 -1.549 0.121 -0.142 0.035
Emotional stability Changes after event 6 0.010 0.013 0.754 0.451 -0.024 0.044
Openness Changes before event 6 0.001 0.014 0.087 0.931 -0.036 0.038
Openness Changes after event 6 0.042 0.013 3.132 0.002 0.007 0.077
Life satisfaction Changes before event 6 -0.145 0.058 -2.497 0.013 -0.295 0.005
Life satisfaction Changes after event 6 -0.123 0.016 -7.643 0.000 -0.165 -0.082
Self-esteem Changes before event 4 -0.119 0.069 -1.725 0.085 -0.296 0.059
Self-esteem Changes after event 4 -0.026 0.035 -0.729 0.466 -0.116 0.065

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the linear contrast DPre – DPost = 0 that allowed us to examine whether there were any personality trait changes from pre-event to post-event personality assessments. Significant effects (p < .01) are depicted in bold.

separat_res_ma_2dumm_contrast <- filter(separat_res_ma_2dumm, Effect == "CONTRPrePost") %>% 
  dplyr::select(-DIFFR2_avg)

separat_res_ma_2dumm_contrast$Effect <- recode(separat_res_ma_2dumm_contrast$Effect, 
                                             "CONTRPrePost" = "After - Before")

## Create table
kable(separat_res_ma_2dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(separat_res_ma_2dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness After - Before 6 0.052 0.026 1.999 0.046 -0.015 0.118
Conscientiousness After - Before 6 0.003 0.013 0.199 0.842 -0.031 0.036
Extraversion After - Before 6 0.022 0.012 1.888 0.059 -0.008 0.052
Emotional stability After - Before 6 0.057 0.024 2.412 0.016 -0.004 0.117
Openness After - Before 6 0.035 0.018 1.982 0.047 -0.011 0.081
Life satisfaction After - Before 6 0.005 0.051 0.094 0.925 -0.126 0.135
Self-esteem After - Before 4 0.086 0.055 1.562 0.118 -0.056 0.227

Graph

This graph illustrates the meta-analytic estimates of the two event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the two event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
separat_res_ma_2dumm_dummies <- filter(separat_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post")

## Create variable on significance
separat_res_ma_2dumm_dummies$sig <- ifelse(separat_res_ma_2dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

separat_res_ma_2dumm_dummies$trait <- factor(separat_res_ma_2dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
separat_res_ma_2dumm_dummies$Effect <- factor(separat_res_ma_2dumm_dummies$Effect, 
                                             levels = c("Pre", "Post"), 
                                             labels = c("Before", "After"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- separat_res_ma_2dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
separat_res_ma_2dumm_dummies$ID <- 1:nrow(separat_res_ma_2dumm_dummies)

plot <- ggplot(data = separat_res_ma_2dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 1.5, y = 0.29), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 1.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 2.1, y = -0.25), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Divorce

divor_res_ma_2dumm <- filter(res_ma_2dumm_long, event == "Divorce")

divor_res_ma_2dumm <- dplyr::select(divor_res_ma_2dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the two event-related dummy variables. These dummies quantify changes in our outcome variables across assessments occurring up to 2 years prior to or any time after the occurrence of a life event. Significant effects (p < .01) are depicted in bold.

divor_res_ma_2dumm_dummies <- filter(divor_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post") %>% 
  dplyr::select(-DIFFR2_avg)

divor_res_ma_2dumm_dummies$Effect <- recode(divor_res_ma_2dumm_dummies$Effect, 
                                             "Pre" = "Changes before event",
                                             "Post" = "Changes after event")

## Create table
kable(divor_res_ma_2dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(divor_res_ma_2dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness Changes before event 7 0.019 0.028 0.679 0.497 -0.053 0.092
Agreeableness Changes after event 7 0.039 0.025 1.563 0.118 -0.025 0.103
Conscientiousness Changes before event 7 -0.050 0.018 -2.792 0.005 -0.096 -0.004
Conscientiousness Changes after event 7 -0.035 0.015 -2.242 0.025 -0.074 0.005
Extraversion Changes before event 7 -0.001 0.017 -0.054 0.957 -0.045 0.043
Extraversion Changes after event 7 0.026 0.021 1.238 0.216 -0.028 0.081
Emotional stability Changes before event 7 -0.058 0.025 -2.314 0.021 -0.123 0.007
Emotional stability Changes after event 7 0.033 0.019 1.801 0.072 -0.014 0.081
Openness Changes before event 7 0.026 0.024 1.092 0.275 -0.035 0.087
Openness Changes after event 7 0.045 0.014 3.142 0.002 0.008 0.082
Life satisfaction Changes before event 7 -0.236 0.037 -6.293 0.000 -0.332 -0.139
Life satisfaction Changes after event 7 0.003 0.042 0.062 0.951 -0.107 0.112
Self-esteem Changes before event 5 -0.079 0.033 -2.359 0.018 -0.165 0.007
Self-esteem Changes after event 5 0.010 0.040 0.253 0.800 -0.093 0.113

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the linear contrast DPre – DPost = 0 that allowed us to examine whether there were any personality trait changes from pre-event to post-event personality assessments. Significant effects (p < .01) are depicted in bold.

divor_res_ma_2dumm_contrast <- filter(divor_res_ma_2dumm, Effect == "CONTRPrePost") %>% 
  dplyr::select(-DIFFR2_avg)

divor_res_ma_2dumm_contrast$Effect <- recode(divor_res_ma_2dumm_contrast$Effect, 
                                             "CONTRPrePost" = "After - Before")

## Create table
kable(divor_res_ma_2dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(divor_res_ma_2dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness After - Before 7 0.021 0.018 1.165 0.244 -0.025 0.066
Conscientiousness After - Before 7 0.020 0.017 1.167 0.243 -0.024 0.063
Extraversion After - Before 7 0.022 0.021 1.072 0.284 -0.031 0.076
Emotional stability After - Before 7 0.079 0.018 4.457 0.000 0.033 0.125
Openness After - Before 7 0.018 0.016 1.139 0.255 -0.023 0.059
Life satisfaction After - Before 7 0.262 0.021 12.288 0.000 0.207 0.317
Self-esteem After - Before 5 0.098 0.030 3.306 0.001 0.022 0.175

Graph

This graph illustrates the meta-analytic estimates of the two event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the two event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
divor_res_ma_2dumm_dummies <- filter(divor_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post")

## Create variable on significance
divor_res_ma_2dumm_dummies$sig <- ifelse(divor_res_ma_2dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

divor_res_ma_2dumm_dummies$trait <- factor(divor_res_ma_2dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
divor_res_ma_2dumm_dummies$Effect <- factor(divor_res_ma_2dumm_dummies$Effect, 
                                             levels = c("Pre", "Post"), 
                                             labels = c("Before", "After"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- divor_res_ma_2dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
divor_res_ma_2dumm_dummies$ID <- 1:nrow(divor_res_ma_2dumm_dummies)

plot <- ggplot(data = divor_res_ma_2dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 1.5, y = 0.29), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 1.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 2.1, y = -0.25), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Widowhood

widow_res_ma_2dumm <- filter(res_ma_2dumm_long, event == "Widowhood")

widow_res_ma_2dumm <- dplyr::select(widow_res_ma_2dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the two event-related dummy variables. These dummies quantify changes in our outcome variables across assessments occurring up to 2 years prior to or any time after the occurrence of a life event. Significant effects (p < .01) are depicted in bold.

widow_res_ma_2dumm_dummies <- filter(widow_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post") %>% 
  dplyr::select(-DIFFR2_avg)

widow_res_ma_2dumm_dummies$Effect <- recode(widow_res_ma_2dumm_dummies$Effect, 
                                             "Pre" = "Changes before event",
                                             "Post" = "Changes after event")

## Create table
kable(widow_res_ma_2dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(widow_res_ma_2dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness Changes before event 5 0.006 0.017 0.341 0.733 -0.037 0.048
Agreeableness Changes after event 5 0.021 0.035 0.612 0.540 -0.069 0.112
Conscientiousness Changes before event 5 -0.019 0.027 -0.709 0.478 -0.088 0.050
Conscientiousness Changes after event 5 -0.059 0.018 -3.308 0.001 -0.105 -0.013
Extraversion Changes before event 5 0.009 0.041 0.210 0.834 -0.098 0.115
Extraversion Changes after event 5 -0.042 0.027 -1.565 0.118 -0.112 0.027
Emotional stability Changes before event 5 -0.089 0.017 -5.385 0.000 -0.132 -0.046
Emotional stability Changes after event 5 0.028 0.024 1.187 0.235 -0.033 0.089
Openness Changes before event 5 -0.015 0.031 -0.474 0.635 -0.094 0.065
Openness Changes after event 5 -0.027 0.022 -1.259 0.208 -0.083 0.029
Life satisfaction Changes before event 5 -0.188 0.023 -8.194 0.000 -0.248 -0.129
Life satisfaction Changes after event 5 -0.189 0.051 -3.689 0.000 -0.321 -0.057
Self-esteem Changes before event 3 -0.046 0.048 -0.956 0.339 -0.169 0.077
Self-esteem Changes after event 3 -0.064 0.061 -1.048 0.295 -0.223 0.094

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the linear contrast DPre – DPost = 0 that allowed us to examine whether there were any personality trait changes from pre-event to post-event personality assessments. Significant effects (p < .01) are depicted in bold.

widow_res_ma_2dumm_contrast <- filter(widow_res_ma_2dumm, Effect == "CONTRPrePost") %>% 
  dplyr::select(-DIFFR2_avg)

widow_res_ma_2dumm_contrast$Effect <- recode(widow_res_ma_2dumm_contrast$Effect, 
                                             "CONTRPrePost" = "After - Before")

## Create table
kable(widow_res_ma_2dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(widow_res_ma_2dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness After - Before 5 0.017 0.038 0.436 0.663 -0.082 0.116
Conscientiousness After - Before 5 -0.039 0.031 -1.272 0.203 -0.118 0.040
Extraversion After - Before 5 -0.050 0.029 -1.687 0.092 -0.126 0.026
Emotional stability After - Before 5 0.110 0.033 3.323 0.001 0.025 0.195
Openness After - Before 5 -0.012 0.028 -0.418 0.676 -0.083 0.060
Life satisfaction After - Before 5 -0.001 0.038 -0.029 0.977 -0.100 0.098
Self-esteem After - Before 3 -0.012 0.033 -0.367 0.714 -0.097 0.073

Graph

This graph illustrates the meta-analytic estimates of the two event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the two event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
widow_res_ma_2dumm_dummies <- filter(widow_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post")

## Create variable on significance
widow_res_ma_2dumm_dummies$sig <- ifelse(widow_res_ma_2dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

widow_res_ma_2dumm_dummies$trait <- factor(widow_res_ma_2dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
widow_res_ma_2dumm_dummies$Effect <- factor(widow_res_ma_2dumm_dummies$Effect, 
                                             levels = c("Pre", "Post"), 
                                             labels = c("Before", "After"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- widow_res_ma_2dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
widow_res_ma_2dumm_dummies$ID <- 1:nrow(widow_res_ma_2dumm_dummies)

plot <- ggplot(data = widow_res_ma_2dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 1.5, y = 0.29), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 1.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 2.1, y = -0.25), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Graduation

gradu_res_ma_2dumm <- filter(res_ma_2dumm_long, event == "Graduation")

gradu_res_ma_2dumm <- dplyr::select(gradu_res_ma_2dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the two event-related dummy variables. These dummies quantify changes in our outcome variables across assessments occurring up to 2 years prior to or any time after the occurrence of a life event. Significant effects (p < .01) are depicted in bold.

gradu_res_ma_2dumm_dummies <- filter(gradu_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post") %>% 
  dplyr::select(-DIFFR2_avg)

gradu_res_ma_2dumm_dummies$Effect <- recode(gradu_res_ma_2dumm_dummies$Effect, 
                                             "Pre" = "Changes before event",
                                             "Post" = "Changes after event")

## Create table
kable(gradu_res_ma_2dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(gradu_res_ma_2dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness Changes before event 5 0.013 0.020 0.666 0.506 -0.038 0.065
Agreeableness Changes after event 5 0.036 0.012 3.081 0.002 0.006 0.066
Conscientiousness Changes before event 5 0.021 0.012 1.722 0.085 -0.011 0.053
Conscientiousness Changes after event 5 0.066 0.032 2.035 0.042 -0.017 0.149
Extraversion Changes before event 5 -0.003 0.012 -0.286 0.775 -0.034 0.027
Extraversion Changes after event 5 -0.023 0.016 -1.503 0.133 -0.064 0.017
Emotional stability Changes before event 5 -0.007 0.023 -0.308 0.758 -0.066 0.052
Emotional stability Changes after event 5 0.004 0.022 0.180 0.857 -0.054 0.062
Openness Changes before event 5 0.027 0.020 1.387 0.165 -0.024 0.078
Openness Changes after event 5 0.022 0.021 1.031 0.302 -0.033 0.076
Life satisfaction Changes before event 5 -0.028 0.018 -1.576 0.115 -0.074 0.018
Life satisfaction Changes after event 5 -0.009 0.016 -0.571 0.568 -0.051 0.032
Self-esteem Changes before event 4 0.006 0.017 0.345 0.730 -0.037 0.049
Self-esteem Changes after event 4 -0.035 0.024 -1.481 0.139 -0.096 0.026

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the linear contrast DPre – DPost = 0 that allowed us to examine whether there were any personality trait changes from pre-event to post-event personality assessments. Significant effects (p < .01) are depicted in bold.

gradu_res_ma_2dumm_contrast <- filter(gradu_res_ma_2dumm, Effect == "CONTRPrePost") %>% 
  dplyr::select(-DIFFR2_avg)

gradu_res_ma_2dumm_contrast$Effect <- recode(gradu_res_ma_2dumm_contrast$Effect, 
                                             "CONTRPrePost" = "After - Before")

## Create table
kable(gradu_res_ma_2dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(gradu_res_ma_2dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness After - Before 5 0.018 0.017 1.094 0.274 -0.025 0.061
Conscientiousness After - Before 5 0.056 0.020 2.823 0.005 0.005 0.108
Extraversion After - Before 5 -0.019 0.010 -1.995 0.046 -0.044 0.006
Emotional stability After - Before 5 0.015 0.011 1.386 0.166 -0.013 0.042
Openness After - Before 5 -0.009 0.017 -0.525 0.600 -0.051 0.034
Life satisfaction After - Before 5 -0.002 0.036 -0.052 0.959 -0.094 0.090
Self-esteem After - Before 4 -0.033 0.031 -1.059 0.290 -0.112 0.047

Graph

This graph illustrates the meta-analytic estimates of the two event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the two event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
gradu_res_ma_2dumm_dummies <- filter(gradu_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post")

## Create variable on significance
gradu_res_ma_2dumm_dummies$sig <- ifelse(gradu_res_ma_2dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

gradu_res_ma_2dumm_dummies$trait <- factor(gradu_res_ma_2dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
gradu_res_ma_2dumm_dummies$Effect <- factor(gradu_res_ma_2dumm_dummies$Effect, 
                                             levels = c("Pre", "Post"), 
                                             labels = c("Before", "After"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- gradu_res_ma_2dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
gradu_res_ma_2dumm_dummies$ID <- 1:nrow(gradu_res_ma_2dumm_dummies)

plot <- ggplot(data = gradu_res_ma_2dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 1.5, y = 0.29), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 1.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 2.1, y = -0.25), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

New Employment

jobbeg_res_ma_2dumm <- filter(res_ma_2dumm_long, event == "New employment")

jobbeg_res_ma_2dumm <- dplyr::select(jobbeg_res_ma_2dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the two event-related dummy variables. These dummies quantify changes in our outcome variables across assessments occurring up to 2 years prior to or any time after the occurrence of a life event. Significant effects (p < .01) are depicted in bold.

jobbeg_res_ma_2dumm_dummies <- filter(jobbeg_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post") %>% 
  dplyr::select(-DIFFR2_avg)

jobbeg_res_ma_2dumm_dummies$Effect <- recode(jobbeg_res_ma_2dumm_dummies$Effect, 
                                             "Pre" = "Changes before event",
                                             "Post" = "Changes after event")

## Create table
kable(jobbeg_res_ma_2dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(jobbeg_res_ma_2dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness Changes before event 5 0.037 0.008 4.620 0.000 0.016 0.057
Agreeableness Changes after event 5 0.038 0.010 3.820 0.000 0.012 0.063
Conscientiousness Changes before event 5 0.028 0.016 1.719 0.086 -0.014 0.069
Conscientiousness Changes after event 5 0.049 0.013 3.655 0.000 0.014 0.084
Extraversion Changes before event 5 0.006 0.010 0.647 0.518 -0.019 0.032
Extraversion Changes after event 5 0.006 0.007 0.835 0.404 -0.012 0.023
Emotional stability Changes before event 5 -0.011 0.011 -0.977 0.329 -0.039 0.017
Emotional stability Changes after event 5 0.026 0.008 3.227 0.001 0.005 0.047
Openness Changes before event 5 0.020 0.009 2.318 0.020 -0.002 0.042
Openness Changes after event 5 0.017 0.013 1.276 0.202 -0.017 0.051
Life satisfaction Changes before event 5 -0.045 0.013 -3.456 0.001 -0.079 -0.012
Life satisfaction Changes after event 5 0.022 0.016 1.371 0.170 -0.019 0.063
Self-esteem Changes before event 3 -0.022 0.021 -1.063 0.288 -0.076 0.031
Self-esteem Changes after event 3 0.002 0.012 0.175 0.861 -0.029 0.033

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the linear contrast DPre – DPost = 0 that allowed us to examine whether there were any personality trait changes from pre-event to post-event personality assessments. Significant effects (p < .01) are depicted in bold.

jobbeg_res_ma_2dumm_contrast <- filter(jobbeg_res_ma_2dumm, Effect == "CONTRPrePost") %>% 
  dplyr::select(-DIFFR2_avg)

jobbeg_res_ma_2dumm_contrast$Effect <- recode(jobbeg_res_ma_2dumm_contrast$Effect, 
                                             "CONTRPrePost" = "After - Before")

## Create table
kable(jobbeg_res_ma_2dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(jobbeg_res_ma_2dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness After - Before 5 0.000 0.009 0.003 0.998 -0.022 0.022
Conscientiousness After - Before 5 0.022 0.016 1.365 0.172 -0.020 0.064
Extraversion After - Before 5 -0.002 0.009 -0.214 0.830 -0.025 0.021
Emotional stability After - Before 5 0.037 0.010 3.576 0.000 0.010 0.063
Openness After - Before 5 -0.006 0.014 -0.447 0.655 -0.041 0.029
Life satisfaction After - Before 5 0.068 0.014 4.772 0.000 0.031 0.105
Self-esteem After - Before 3 0.024 0.026 0.934 0.350 -0.043 0.091

Graph

This graph illustrates the meta-analytic estimates of the two event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the two event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
jobbeg_res_ma_2dumm_dummies <- filter(jobbeg_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post")

## Create variable on significance
jobbeg_res_ma_2dumm_dummies$sig <- ifelse(jobbeg_res_ma_2dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

jobbeg_res_ma_2dumm_dummies$trait <- factor(jobbeg_res_ma_2dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
jobbeg_res_ma_2dumm_dummies$Effect <- factor(jobbeg_res_ma_2dumm_dummies$Effect, 
                                             levels = c("Pre", "Post"), 
                                             labels = c("Before", "After"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- jobbeg_res_ma_2dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
jobbeg_res_ma_2dumm_dummies$ID <- 1:nrow(jobbeg_res_ma_2dumm_dummies)

plot <- ggplot(data = jobbeg_res_ma_2dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 1.5, y = 0.29), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 1.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 2.1, y = -0.25), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Unemployment

unemploy_res_ma_2dumm <- filter(res_ma_2dumm_long, event == "Unemployment")

unemploy_res_ma_2dumm <- dplyr::select(unemploy_res_ma_2dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the two event-related dummy variables. These dummies quantify changes in our outcome variables across assessments occurring up to 2 years prior to or any time after the occurrence of a life event. Significant effects (p < .01) are depicted in bold.

unemploy_res_ma_2dumm_dummies <- filter(unemploy_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post") %>% 
  dplyr::select(-DIFFR2_avg)

unemploy_res_ma_2dumm_dummies$Effect <- recode(unemploy_res_ma_2dumm_dummies$Effect, 
                                             "Pre" = "Changes before event",
                                             "Post" = "Changes after event")

## Create table
kable(unemploy_res_ma_2dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(unemploy_res_ma_2dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness Changes before event 6 0.019 0.034 0.556 0.579 -0.070 0.108
Agreeableness Changes after event 6 0.007 0.023 0.300 0.764 -0.053 0.067
Conscientiousness Changes before event 6 -0.011 0.011 -0.974 0.330 -0.039 0.018
Conscientiousness Changes after event 6 -0.014 0.010 -1.427 0.154 -0.039 0.011
Extraversion Changes before event 6 0.003 0.010 0.327 0.744 -0.022 0.029
Extraversion Changes after event 6 0.000 0.009 0.049 0.961 -0.022 0.023
Emotional stability Changes before event 6 -0.039 0.015 -2.600 0.009 -0.077 0.000
Emotional stability Changes after event 6 -0.020 0.010 -2.007 0.045 -0.046 0.006
Openness Changes before event 6 0.005 0.010 0.504 0.614 -0.022 0.032
Openness Changes after event 6 0.012 0.014 0.845 0.398 -0.025 0.049
Life satisfaction Changes before event 6 -0.082 0.016 -5.249 0.000 -0.122 -0.042
Life satisfaction Changes after event 6 -0.087 0.019 -4.452 0.000 -0.137 -0.037
Self-esteem Changes before event 4 -0.035 0.017 -2.114 0.034 -0.078 0.008
Self-esteem Changes after event 4 -0.091 0.046 -1.994 0.046 -0.208 0.026

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the linear contrast DPre – DPost = 0 that allowed us to examine whether there were any personality trait changes from pre-event to post-event personality assessments. Significant effects (p < .01) are depicted in bold.

unemploy_res_ma_2dumm_contrast <- filter(unemploy_res_ma_2dumm, Effect == "CONTRPrePost") %>% 
  dplyr::select(-DIFFR2_avg)

unemploy_res_ma_2dumm_contrast$Effect <- recode(unemploy_res_ma_2dumm_contrast$Effect, 
                                             "CONTRPrePost" = "After - Before")

## Create table
kable(unemploy_res_ma_2dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(unemploy_res_ma_2dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness After - Before 6 -0.012 0.017 -0.712 0.476 -0.056 0.032
Conscientiousness After - Before 6 0.000 0.010 0.045 0.964 -0.025 0.025
Extraversion After - Before 6 -0.001 0.012 -0.119 0.905 -0.032 0.029
Emotional stability After - Before 6 0.015 0.011 1.386 0.166 -0.013 0.042
Openness After - Before 6 0.005 0.015 0.348 0.728 -0.034 0.045
Life satisfaction After - Before 6 -0.017 0.027 -0.641 0.522 -0.086 0.052
Self-esteem After - Before 4 -0.066 0.068 -0.971 0.332 -0.240 0.109

Graph

This graph illustrates the meta-analytic estimates of the two event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the two event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
unemploy_res_ma_2dumm_dummies <- filter(unemploy_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post")

## Create variable on significance
unemploy_res_ma_2dumm_dummies$sig <- ifelse(unemploy_res_ma_2dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

unemploy_res_ma_2dumm_dummies$trait <- factor(unemploy_res_ma_2dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
unemploy_res_ma_2dumm_dummies$Effect <- factor(unemploy_res_ma_2dumm_dummies$Effect, 
                                             levels = c("Pre", "Post"), 
                                             labels = c("Before", "After"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- unemploy_res_ma_2dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
unemploy_res_ma_2dumm_dummies$ID <- 1:nrow(unemploy_res_ma_2dumm_dummies)

plot <- ggplot(data = unemploy_res_ma_2dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 1.5, y = 0.29), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 1.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 2.1, y = -0.25), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.

Retirement

retire_res_ma_2dumm <- filter(res_ma_2dumm_long, event == "Retirement")

retire_res_ma_2dumm <- dplyr::select(retire_res_ma_2dumm, -c(event))

Table

Dummy Variables

This table includes results of the meta-analytic aggregations across panel studies for the two event-related dummy variables. These dummies quantify changes in our outcome variables across assessments occurring up to 2 years prior to or any time after the occurrence of a life event. Significant effects (p < .01) are depicted in bold.

retire_res_ma_2dumm_dummies <- filter(retire_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post") %>% 
  dplyr::select(-DIFFR2_avg)

retire_res_ma_2dumm_dummies$Effect <- recode(retire_res_ma_2dumm_dummies$Effect, 
                                             "Pre" = "Changes before event",
                                             "Post" = "Changes after event")

## Create table
kable(retire_res_ma_2dumm_dummies
      , caption="**Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(retire_res_ma_2dumm_dummies[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness Changes before event 5 0.018 0.010 1.855 0.064 -0.007 0.043
Agreeableness Changes after event 5 0.022 0.009 2.392 0.017 -0.002 0.045
Conscientiousness Changes before event 5 0.010 0.009 1.151 0.250 -0.013 0.034
Conscientiousness Changes after event 5 -0.024 0.025 -0.936 0.349 -0.089 0.041
Extraversion Changes before event 5 0.003 0.010 0.348 0.728 -0.022 0.028
Extraversion Changes after event 5 0.011 0.009 1.256 0.209 -0.011 0.033
Emotional stability Changes before event 5 -0.001 0.015 -0.042 0.966 -0.039 0.038
Emotional stability Changes after event 5 0.025 0.024 1.049 0.294 -0.036 0.085
Openness Changes before event 5 0.011 0.009 1.282 0.200 -0.012 0.034
Openness Changes after event 5 0.019 0.016 1.154 0.248 -0.023 0.060
Life satisfaction Changes before event 5 0.000 0.018 0.019 0.984 -0.045 0.046
Life satisfaction Changes after event 5 0.069 0.033 2.056 0.040 -0.017 0.155
Self-esteem Changes before event 3 0.012 0.028 0.415 0.678 -0.060 0.083
Self-esteem Changes after event 3 0.058 0.045 1.285 0.199 -0.058 0.174

Linear Contrasts

This table includes results of the meta-analytic aggregations across panel studies for the linear contrast DPre – DPost = 0 that allowed us to examine whether there were any personality trait changes from pre-event to post-event personality assessments. Significant effects (p < .01) are depicted in bold.

retire_res_ma_2dumm_contrast <- filter(retire_res_ma_2dumm, Effect == "CONTRPrePost") %>% 
  dplyr::select(-DIFFR2_avg)

retire_res_ma_2dumm_contrast$Effect <- recode(retire_res_ma_2dumm_contrast$Effect, 
                                             "CONTRPrePost" = "After - Before")

## Create table
kable(retire_res_ma_2dumm_contrast
      , caption="**Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets**"
      , escape=FALSE
      , label = NA
      , digits = 3
      , col.names = c("Trait", "Dummy", "*k*", "*ES*", "*SE*", "*z*", "*p*", 
                      "99%-CI lower", "99%-CI upper")) %>% 
  kable_styling(bootstrap_options = c("striped", "hover"),  
                fixed_thead = T, full_width = TRUE, position="left") %>% 
  column_spec(c(4:9), bold = ifelse(retire_res_ma_2dumm_contrast[,7] < 0.01, TRUE, FALSE))
Meta-Analytic Results on Linear Contrasts Across Event-Related Dummies Aggregated Across Datasets
Trait Dummy k ES SE z p 99%-CI lower 99%-CI upper
Agreeableness After - Before 5 0.005 0.015 0.332 0.740 -0.033 0.042
Conscientiousness After - Before 5 -0.040 0.025 -1.623 0.105 -0.105 0.024
Extraversion After - Before 5 0.005 0.013 0.401 0.688 -0.028 0.038
Emotional stability After - Before 5 0.019 0.016 1.171 0.242 -0.023 0.060
Openness After - Before 5 0.011 0.015 0.698 0.485 -0.028 0.050
Life satisfaction After - Before 5 0.067 0.041 1.617 0.106 -0.039 0.173
Self-esteem After - Before 3 0.018 0.016 1.111 0.267 -0.024 0.059

Graph

This graph illustrates the meta-analytic estimates of the two event-related dummy variables. Error bars indicate 99% confidence intervals. Significant effects (p < .01) are depicted in black. You can hover over the data points to receive more information on the effect size estimates. Furthermore, the graph includes the weighted average of the R2 difference scores that describe how much incremental variance the two event-related dummies explain in the respective outcome variable (beyond stable between-person differences and age-related changes).

## Create dataset
retire_res_ma_2dumm_dummies <- filter(retire_res_ma_2dumm, Effect == "Pre" |
                                       Effect == "Post")

## Create variable on significance
retire_res_ma_2dumm_dummies$sig <- ifelse(retire_res_ma_2dumm_dummies$p < 0.01, 1, 0) %>% as.factor()

retire_res_ma_2dumm_dummies$trait <- factor(retire_res_ma_2dumm_dummies$trait, 
                                            levels = c("Agreeableness", "Conscientiousness", 
                                                       "Emotional stability", "Extraversion",
                                                       "Openness", "Life satisfaction",
                                                       "Self-esteem"),
                                            ordered = TRUE)


## Recode effect variables
retire_res_ma_2dumm_dummies$Effect <- factor(retire_res_ma_2dumm_dummies$Effect, 
                                             levels = c("Pre", "Post"), 
                                             labels = c("Before", "After"), ordered = TRUE) 

## Calculate R2 trait means
trait_means <- retire_res_ma_2dumm_dummies %>%
  group_by(trait) %>%
  summarise(mean_r2 = round(mean(DIFFR2_avg, na.rm = TRUE), 2))


## Create ID variable for interactive plot
retire_res_ma_2dumm_dummies$ID <- 1:nrow(retire_res_ma_2dumm_dummies)

plot <- ggplot(data = retire_res_ma_2dumm_dummies, aes(x = Effect, y = ES)) +
  geom_hline(yintercept = 0) +
  geom_point_interactive(aes(tooltip = 
                               paste0("b = ", round(ES,2), 
                                      ", 99% CI = [", round(lower,2),
                                      ", ", round(higher,2), "]"), 
                             data_id = ID, colour = sig), size = 1.8) +
  geom_text(aes(x = 1.5, y = 0.29), label = "Event") +
  geom_errorbar(aes(ymin = lower, ymax = higher, colour = sig), width = 0) +
  geom_segment(aes(x = 1.5, y = -0.25, yend = 0.25)) +
  scale_y_continuous(limits = c(-0.30, 0.30), 
                     breaks = c(-0.30, -0.20, -0.10, 0, 0.10, 0.20, 0.30),
                     oob = scales::oob_squish) +
  scale_colour_manual(values = c("0" = "grey", "1" = "black")) +
  facet_wrap(trait ~ ., ncol = 2, switch = "y") +
  geom_text(data = trait_means, aes(x = 2.1, y = -0.25), 
            label = paste0("R", "\u00B2", " = ", trait_means$mean_r2, "%")) +
  labs(y = "Effect size", x = "Event-related changes") +
  theme_pub() +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, 
                                   vjust = 1, hjust = 1))

ggiraph(ggobj = plot, height_svg = 8)

Note. If a confidence intervals seems to be asymmetrical, this can be explained by truncating estimates going beyond the axis limits to the highest/lowest depictable value.