#-------------------------------------
# Bivariate (load from cotwincontrol.R !)
#-------------------------------------

cat("Recode for <Session 2 - Co-Twin Control Design> started ")
########################
# load data (TwinLife 6.0.0)
data_full <- read_dta(file = "Data/SUF/TL_v6-0-0_Stata/ZA6701_person_wid1_v6-0-0.dta")

########################
# define missing values
data_full[data_full < 0] <- NA

########################
# duplicate of data frame
df <- data_full %>% filter(cgr == 2 & !is.na(zyg0102)) %>% rename(zyg = zyg0102)
df <- zap_label(df)
df <- zap_labels(df)

df <- df %>% 
  mutate(college_par = case_when(eca0100 == 5 & ptyp %in% c(300, 400) ~ 1,
                             eca0100 %in% c(1:4, 6) & ptyp %in% c(300, 400) ~ 0)) %>% 
  group_by(fid) %>% 
  mutate(college = max(college_par, na.rm = TRUE)) %>% 
  ungroup() %>% 
  mutate(college = case_when(is.infinite(college) ~ as.numeric(NA),
                             TRUE ~ college)) 

#View(df[,c("fid","ptyp","eca0100","college_par","college")])
df <- df %>% 
  filter(ptyp %in% c(1,2))

########################
# Math grades
df <- df %>% 
  mutate(math = case_when(is.na(cer2200) ~ 7 - cer1400,
                          TRUE ~ 7 - cer2200)) 
table(df$math)

########################
# Help
df <- df %>% 
  mutate(help = inv0103)
########################
# Self-Efficacy
df <- df %>% 
  rowwise() %>% 
  mutate(selfeff = round(mean(c(sef0100, sef0101, sef0102), na.rm = TRUE),2)) %>% 
  ungroup()
table(df$selfeff)

########################
# Cognitive abilities
model <- "CA =~ igf0182 + igf0282 + igf0382 + igf0482"
fit <- suppressWarnings(cfa(model = model, data = df, missing = "fiml"))
summary(fit, fit.measures = TRUE)
lvscore <- lavPredict(object = fit, type = "lv")
df <- cbind(df,lvscore)
plot(density(df$CA, na.rm = TRUE))

########################
# Personality: Neuroticism
df <- df %>% 
  mutate(nervous = per0109) %>% 
  mutate(worries = per0104) %>% 
  mutate(notrelaxed = 8 - per0114)

########################
# Personality: Extraversion
df <- df %>% 
  mutate(notquiet = 8 - per0111) %>% 
  mutate(talkactive = per0101) %>% 
  mutate(outgoing = per0107)

########################
# Personality: Conscientiousness
df <- df %>% 
  mutate(notlazy = 8 - per0106) %>% 
  mutate(thorough = per0100) %>% 
  mutate(efficient = per0110)

########################
# Personality: Eager for knowledge
df <- df %>% 
  mutate(knowledge = per0115)
table(df$knowledge)

########################
# Zygosity
table(df$zyg) # 1 = MZ, 2 = DZ
df <- df %>% 
  mutate(zyg = zyg -1) # 0 = MZ; 1 = DZ
table(df$zyg)
df$zyg <- factor(df$zyg, labels = c("MZ","DZ"))
table(df$zyg)

########################
# Sex
df <- df %>% # 1 = male; 2 = female
  mutate(female = sex - 1) # 0 = male; 1 = female

# Select variables
df_final <- df %>% 
  select(fid, pid, ptyp, zyg, female, sex, help, college, math, selfeff, CA, nervous, worries, notrelaxed, talkactive, notquiet, outgoing, notlazy, thorough, efficient, knowledge)

########################
# Create sample

# listwise deletion of missing values
df_final <- na.omit(df_final)

########################
# Remove objects
rm(data_full, df, fit, lvscore)

########################
# save data
write.csv(df_final,"Data/Out/Session 2/data_final.csv", row.names = FALSE)

cat("\n\n\nRecode for <Session 2 - Co-Twin Control Design> finished. Final data frame was saved in: \nTwinLife Workshop/Data/Out/Session 2/data_final.csv\n\n")
