data = all_surveys %>%
select(session,
age,
education_years,
net_income,
starts_with("bfi_agree"),
starts_with("bfi_consc"),
starts_with("bfi_open"),
starts_with("bfi_extra"),
starts_with("bfi_neuro"),
religiosity,
duration_relationship_years,
duration_relationship_month,
contraception_at_all,
contraception_method,
contraception_approach,
contraception_method_broad,
contraception_meeting_partner,
partner_attractiveness_face,
partner_attractiveness_body,
relationship_satisfaction_overall,
relationship_satisfaction_2,
relationship_satisfaction_3,
relationship_problems_R,
relationship_conflict_R,
satisfaction_sexual_intercourse,
reasons_for_exclusion)
data_diary = diary %>%
select(session,
reasons_for_exclusion,
high_libido, sexual_desire_for_whom,
sex_active, sex_activity_anal_sex, sex_activity_bdsm_dom, sex_activity_bdsm_sub,
sex_activity_cuddling, sex_activity_cunnilingus, sex_activity_cybersex,
sex_activity_dirty_talk,
sex_activity_fellatio, sex_activity_kissing, sex_activity_masturbated_by_partner,
sex_activity_masturbated_partner, sex_activity_masturbation, sex_activity_other,
sex_activity_phone_skype_sex, sex_activity_pornography, sex_activity_sex,
sex_activity_touch_other,
sex_activity_toys, sex_activity_unclear, sex_other, sex_solo, sex_unclear,
days_done)
n_excluded = data %>% filter(reasons_for_exclusion != "") %>% nrow()
data = data %>% filter(reasons_for_exclusion == "")
481 people were excluded.
session_codes = data$session
data_diary = data_diary %>%
filter(session %in% session_codes)
length(data_diary$session)
## [1] 53332
The 1179 participants filled out 53332.
n_skipped_diary = data_diary %>%
filter(reasons_for_exclusion %contains% "skipped_diary_entry") %>%
count()
data_diary = data_diary %>%
filter(!(reasons_for_exclusion %contains% "skipped_diary_entry"))
745 days were skipped.
n_dishonest = data_diary %>%
filter(reasons_for_exclusion %contains% "dishonest") %>%
count()
data_diary = data_diary %>%
filter(!(reasons_for_exclusion %contains% "dishonest"))
142 days contained dishonest answers.
number_of_days = data_diary %>%
group_by(session) %>%
summarise(n = n()) %>%
rename(number_of_days = n)
data_diary = left_join(data_diary, number_of_days, by = "session")
data_diary_include = data_diary %>%
filter(as.numeric(number_of_days) >= 14)
data_diary_exclude = data_diary %>%
filter(as.numeric(number_of_days) < 14)
data_diary = data_diary_include
170 participants were excluded because they filled out less than 14 days - resulting in 1014 excluded days.
In total 968 participants with 51431 diary days were included for the analyses in which outcomes were based on diary information.
Set factor level correctly
data = data %>% mutate(
relationship_status = ifelse(is.na(duration_relationship_month), "Single", "Partnered"))
qplot(data$relationship_status) + coord_flip()
data = data %>%
mutate(relationship_duration = duration_relationship_years * 12 +
duration_relationship_month)
qplot(data$relationship_duration)
data = data %>%
mutate(relationship_duration_factor =
factor(ifelse(relationship_status == "Single",
"Single",
ifelse(relationship_duration <= 12,
"Partnered_upto12months",
ifelse(relationship_duration <= 28,
"Partnered_upto28months",
ifelse(relationship_duration <= 52,
"Partnered_upto52months",
ifelse(relationship_duration > 52,
"Partnered_morethan52months",
NA))))),
levels = c("Single", "Partnered_upto12months",
"Partnered_upto28months", "Partnered_upto52months",
"Partnered_morethan52months")))
qplot(data$relationship_duration_factor)
ggplot(data, aes(relationship_duration)) +
geom_histogram(aes(fill = relationship_duration_factor), bins = 100)
data = data %>%
mutate(# Participants, who indicated having no penetrative sex:
contraception_method = if_else(contraception_at_all == 5,
"barrier_no_penetrative_sex",
contraception_method),
# Participants, who indicated having no penetrative sex
# use no contraceptives
contraception_approach = factor(ifelse(
contraception_method =="barrier_no_penetrative_sex",
"nothing",
as.character(contraception_approach))),
# Fixed contraception_approach for
# "hormonal_pill, barrier_coitus_interruptus"
contraception_approach = factor(ifelse(
contraception_method == "hormonal_pill, barrier_coitus_interruptus",
"hormonal_pill_only",
as.character(contraception_approach))),
# Fixed contraception_approach for
# "hormonal_pill, barrier_no_penetrative_sex"
contraception_approach = factor(ifelse(
contraception_method == "hormonal_pill, barrier_no_penetrative_sex",
"hormonal_pill_only",
as.character(contraception_approach))),
# Fixed contraception_approach for
# "hormonal_other, barrier_condoms"
contraception_approach = factor(ifelse(
contraception_method == "hormonal_other, barrier_condoms",
"hormonal_other+condoms",
as.character(contraception_approach))),
# Fixed contraception_approach for
# "hormonal_other, barrier_condoms, barrier_coitus_interruptus"
contraception_approach = factor(ifelse(
contraception_method ==
"hormonal_other, barrier_condoms, barrier_coitus_interruptus",
"hormonal_other+condoms",
as.character(contraception_approach))),
contraception_approach = factor(ifelse(
contraception_approach == "hormonal+barrier",
"hormonal_pill+condoms",
as.character(contraception_approach))),
contraception_approach = factor(ifelse(
contraception_method %contains% "awareness" &
contraception_method %contains% "condoms" &
!(contraception_method %contains% "hormonal"),
"awareness+condoms",
as.character(contraception_approach))))
data = data %>%
mutate(contraception_approach = factor(contraception_approach,
levels = c("hormonal_pill_only",
"hormonal_other_only",
"hormonal_pill+condoms",
"hormonal_other+condoms",
"barrier_pessar",
"awareness",
"awareness+condoms",
"condoms",
"other",
"nothing")))
qplot(factor(data$contraception_approach, levels = rev(levels(data$contraception_approach)))) +
coord_flip()
##
## hormonal_pill_only hormonal_other_only hormonal_pill+condoms hormonal_other+condoms
## 254 61 159 17
## barrier_pessar awareness awareness+condoms condoms
## 85 20 100 380
## other nothing
## 14 89
data = data %>% mutate(
contraception_hormonal = factor(ifelse(contraception_approach %contains% "hormonal",
"yes",
"no")))
qplot(data$contraception_hormonal) + coord_flip()
##
## no yes
## 688 491
There will be NAs because we asked about contracetion when meeting partner only if participants were currently in a relationship
## contraception_meeting_partner
## contraception_hormonal 0 1 <NA>
## no 251 150 287
## yes 133 240 118
data = data %>% mutate(
contraception_change_since_meeting_partner =
ifelse(contraception_hormonal == "yes" & contraception_meeting_partner == 1,
"congruent_hormonal",
ifelse(contraception_hormonal == "no" & contraception_meeting_partner == 0,
"congruent_nonhormonal",
ifelse(contraception_hormonal == "yes" & contraception_meeting_partner == 0,
"switched_to_hormonal",
ifelse(contraception_hormonal == "no" &
contraception_meeting_partner == 1, "switched_to_nonhormonal",
NA)))))
qplot(data$contraception_change_since_meeting_partner) + coord_flip()
calculate mean of libido, sex_active_frequency and actual sex frequency based on diary
data_diary_means = data_diary %>%
group_by(session, number_of_days) %>%
summarise(diary_libido_mean = mean(high_libido, na.rm = T),
diary_sex_active_mean = mean(sex_active, na.rm = T),
diary_sex_active_sex_mean = mean(sex_activity_sex, na.rm = T),
diary_masturbation_mean = mean(sex_activity_masturbation, na.rm = T))
qplot(data_diary_means$diary_libido_mean)
data_diary_means = data_diary_means %>%
mutate(diary_sex_active_sex_sum = as.integer(round(diary_sex_active_sex_mean*number_of_days, 1)),
diary_sex_active_sum = as.integer(round(diary_sex_active_mean*number_of_days, 1)),
diary_masturbation_sum = as.integer(round(diary_masturbation_mean*number_of_days, 1)))
data = left_join(data, data_diary_means, by = "session")
data = data %>%
mutate(diary_sex_active_sex_mean =
ifelse(contraception_method == "barrier_no_penetrative_sex",
NA,
diary_sex_active_sex_mean),
diary_sex_active_sex_sum =
ifelse(contraception_method == "barrier_no_penetrative_sex",
NA,
diary_sex_active_sex_sum),
diary_sex_active_mean =
ifelse(contraception_method == "barrier_no_penetrative_sex",
NA,
diary_sex_active_mean),
diary_sex_active_sum =
ifelse(contraception_method == "barrier_no_penetrative_sex",
NA,
diary_sex_active_sum),
diary_masturbation_mean =
ifelse(contraception_method == "barrier_no_penetrative_sex",
NA,
diary_masturbation_mean),
diary_masturbation_sum =
ifelse(contraception_method == "barrier_no_penetrative_sex",
NA,
diary_masturbation_sum))