The purpose of this interactive visualization is to examine data from the World Values Survey (WVS) and European Values Study (EVS) in the context of evolving trends in public opinion regarding moral attitudes within Ukraine.
The Integrated Values Surveys (IVS) and WVS Wave 7 datasets contained 32 questions related to specific actions or behaviors that were to be assessed as either always justifiable, never justifiable, or somewhere in between. Below, you’ll find the variable labels and the Ukrainian question wordings for both the IVS and WVS datasets:
Avoiding a fare on public transport (Проїзд без сплати у громадському транспорті).
Claiming government benefits to which you are not entitled (Отримання державної допомоги, на яку Ви не маєте права).
Cheating on taxes (Невиплата податків, якщо є така можливість).
Paying cash (Розрахунки готівкою за послуги для того, щоб уникнути сплати податків).
Stealing property (Крадіжка чужого майна).
Someone accepting a bribe (Отримання хабара посадовими особами).
Buy stolen goods (Купівля завідомо краденого).
Joyriding (Викрадення особистого транспорту на короткий проміжок часу (джойрайдінг)).
Taking soft drugs (Вживання марихуани (коноплі) чи гашишу).
Driving under influence of alcohol (Керування автомобілем у нетверезому стані).
Throwing away litter (Викидання сміття у громадському місці).
Lying (Брехня у особистих інтересах).
Political violence (Використання насильства у політичній боротьбі).
Political assassination (Політичні вбивства).
Terrorism as a political, ideological or religious mean (Тероризм як політичний, ідеологічний та релігійний засіб).
Violence against other people (Насильство проти інших людей).
For a man to beat his wife (Якщо батьки б’ють дітей).
Parents beating children (Якщо чоловік б’є свою дружини).
Invitro fertilization (Штучне запліднення чи запліднення у пробірці).
Experiments with human embryos (Наукові експерименти на людських ембріонах).
Genetic manipulation of food stuffs (Генна модифікація продуктів харчування).
Having casual sex (Випадкові сексуальні стосунки).
Sex before marriage (Сексуальні відносини до шлюбу).
Divorce (Розлучення).
Adultery (Зрада у шлюбі).
Abortion (Аборт).
Homosexuality (Гомосексуалізм).
Sex under the legal age of consent (Сексуальні стосунки до досягнення повнолітнього віку).
Prostitution (Проституція).
Euthanasia (Евтаназія (омертвлення невиліковного хворого з його дозволу)).
Suicide (Самогубство).
Death penalty (Смертна кара).
The question scale ranged from 1 (never justifiable) to 10 (always justifiable).
The IVS dataset 1981-2022 (version 3.0; December 14, 2022) has been
compiled by merging by merging the EVS Trend File for the years
1981-2017 (DOI: 10.4232/1.14021) and the WVS trend dataset for the years
1981-2022 (DOI: 10.14281/18241.23) 1, 2. Respondents’ answers to a specific
question were extracted from WVS Wave 7 (DOI: 10.14281/18241.20) 3.
The data observations are specific to Ukraine. The research was
conducted in Ukraine during the following years: 1996 (WVS, n=2811),
1999 (EVS, n=1195), 2006 (WVS, n=1000), 2008 (EVS, n=1507), 2011 (WVS,
n=1500), and 2020 (EVS, n=1612; WVS, n=1289).
Individuals in the sample were 18 years of age or older.
The text in this visualization includes tables displaying the sample
sizes used for calculating the means.
Changes in certain moral attitudes were examined across five
generational cohorts: Builders (born before 1946), Baby Boomers (born
between 1946-1964), Generation X (born between 1965-1979), Generation Y
(born between 1980-1994), and Generation Z (born between
1995-2009).
Results are weighted, except for total sample sizes by year and
intervals by age in generational cohorts (in the annex).
rm(list = ls())
library(haven)
library(dplyr)
library(tidyr)
library(srvyr)
library (plotly)
library(knitr)
library(lubridate)
### Import data set
setwd("E:/Data/")
df <- read_sav("Integrated_values_surveys_1981-2022_Ukraine.sav", encoding = "latin1")
att1 <- read_sav("WVS_Wave_7_Ukraine_Spss_v5.0.sav")
# Select specific variables and create a new data frame
# Convert a variable to a factor and assign it to a new variable
att <- df %>%
select(E290,
F114:F144,
F144_01,
F144_02,
F199,
S020,
S017,
X003) %>%
mutate(birthyear = S020 - X003,
Generation = case_when(
birthyear <= 1945 ~ 1,
between(birthyear, 1946, 1964) ~ 2,
between(birthyear, 1965, 1979) ~ 3,
between(birthyear, 1980, 1994) ~ 4,
between(birthyear, 1995, 2009) ~ 5,
between(birthyear, 2010, 2024) ~ 6,
TRUE ~ NA
)
)%>%
mutate(Generation = factor(
Generation,
levels = 1:6,
labels = c(
"Builders",
"Baby Boomers",
"Generation X",
"Generation Y",
"Generation Z",
"Generation Alpha"
),
ordered = TRUE
)) %>%
mutate(Year = as.factor(S020),
Weight = S017) %>%
select(-S020, -S017, -X003) %>%
filter(Year %in% c("1996", "1999", "2006",
"2008", "2011", "2020"))%>%
select_if(~!all(is.na(.)))
# library(labelled)
# latt <- as.data.frame(var_label(att[1:32]))
# latt1 <- as.data.frame(var_label(att1$Q192))
opts <- options(knitr.kable.NA = "")
### F115 Justifiable: Avoiding a fare on public transport
F115 <- att %>% select (F115, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean = round(survey_mean(F115, vartype = "ci"), 1)) %>%
as.data.frame() %>%
select(-n_se)
head(t(F115)) %>%
kable(caption = "Table 1. Justifiable: Avoiding a fare on public transport")
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| n | 2580 | 1147 | 951 | 1461 | 1500 | 2849 |
| Mean | 4.4 | 4.0 | 3.8 | 3.2 | 3.5 | 3.8 |
| Mean_low | 4.2 | 3.8 | 3.6 | 3.1 | 3.4 | 3.6 |
| Mean_upp | 4.5 | 4.2 | 4.1 | 3.4 | 3.6 | 4.0 |
### F115 Justifiable: Avoiding a fare on public transport by generational cohort
F115g <- att %>%
select(F115, Weight, Year, Generation) %>%
na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year, Generation) %>%
summarize(n = round(survey_total()),
Mean = round(survey_mean(F115, vartype = "ci"), 1)) %>%
as.data.frame() %>%
select(-n_se)
head(t(F115g)) %>%
kable(caption = "Table 2a. Justifiable: Avoiding a fare on public transport by generational cohort")
| Year | 1996 | 1996 | 1996 | 1999 | 1999 | 1999 | 1999 | 2006 | 2006 | 2006 | 2006 | 2008 | 2008 | 2008 | 2008 | 2011 | 2011 | 2011 | 2011 | 2020 | 2020 | 2020 | 2020 | 2020 |
| Generation | Builders | Baby Boomers | Generation X | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Generation Z |
| n | 971 | 1054 | 555 | 364 | 437 | 303 | 43 | 221 | 320 | 251 | 159 | 313 | 455 | 373 | 319 | 263 | 475 | 351 | 411 | 207 | 807 | 742 | 810 | 283 |
| Mean | 4.2 | 4.3 | 4.7 | 3.2 | 3.9 | 4.9 | 5.6 | 3.9 | 3.5 | 3.8 | 4.4 | 2.6 | 3.0 | 3.5 | 3.7 | 3.2 | 3.4 | 3.4 | 3.9 | 3.8 | 3.7 | 3.7 | 3.9 | 4.0 |
| Mean_low | 4.0 | 4.1 | 4.5 | 2.9 | 3.6 | 4.5 | 4.8 | 3.3 | 3.2 | 3.5 | 3.9 | 2.4 | 2.8 | 3.3 | 3.4 | 2.9 | 3.2 | 3.1 | 3.7 | 3.0 | 3.3 | 3.2 | 3.5 | 3.3 |
| Mean_upp | 4.4 | 4.5 | 4.9 | 3.5 | 4.1 | 5.2 | 6.3 | 4.6 | 3.9 | 4.1 | 4.8 | 2.8 | 3.2 | 3.8 | 4.1 | 3.5 | 3.6 | 3.7 | 4.2 | 4.5 | 4.1 | 4.1 | 4.3 | 4.6 |
F115gs<-F115g[c(1:2, 4)]
F115w <- F115gs %>% pivot_wider(names_from = Generation,
values_from = Mean) %>%
as.data.frame()
F115w <- F115w %>%
mutate(Total = F115$Mean)
head(t(F115w)) %>%
kable(caption = "Table 2b. Justifiable: Avoiding a fare on public transport by generational cohort (for Figure 2)")
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Builders | 4.2 | 3.2 | 3.9 | 2.6 | 3.2 | 3.8 |
| Baby Boomers | 4.3 | 3.9 | 3.5 | 3.0 | 3.4 | 3.7 |
| Generation X | 4.7 | 4.9 | 3.8 | 3.5 | 3.4 | 3.7 |
| Generation Y | 5.6 | 4.4 | 3.7 | 3.9 | 3.9 | |
| Generation Z | 4 |
### F114 Justifiable: Claiming government benefits
F114 <- att %>% select (F114, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean = round(survey_mean(F114, vartype = "ci"), 1)) %>%
as.data.frame() %>%
select(-n_se)
head(t(F114)) %>%
kable(caption = "Table 3. Justifiable: Claiming government benefits")
| Year | 1999 | 2008 |
| n | 1123 | 1415 |
| Mean | 2.8 | 2.2 |
| Mean_low | 2.7 | 2.1 |
| Mean_upp | 3.0 | 2.3 |
### F114 Justifiable: Claiming government benefits by generational cohort
F114g <- att %>%
select(F114, Weight, Year, Generation) %>%
na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year, Generation) %>%
summarize(n = round(survey_total()),
Mean = round(survey_mean(F114, vartype = "ci"), 1)) %>%
as.data.frame() %>%
select(-n_se)
head(t(F114g)) %>%
kable(caption = "Table 4a. Claiming government benefits by generational cohort")
| Year | 1999 | 1999 | 1999 | 1999 | 2008 | 2008 | 2008 | 2008 |
| Generation | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y |
| n | 366 | 433 | 283 | 41 | 308 | 441 | 360 | 306 |
| Mean | 2.2 | 2.8 | 3.5 | 3.4 | 1.7 | 2.0 | 2.4 | 2.6 |
| Mean_low | 2.0 | 2.6 | 3.2 | 2.6 | 1.5 | 1.8 | 2.2 | 2.3 |
| Mean_upp | 2.4 | 3.1 | 3.8 | 4.2 | 1.9 | 2.1 | 2.7 | 2.9 |
F114gs <- F114g[c(1:2, 4)]
F114gsw <- F114gs %>% pivot_wider(names_from = Generation,
values_from = Mean) %>%
as.data.frame()
head(t(F114g)) %>%
kable(caption = "Table 4b. Claiming government benefits by generational cohort")
| Year | 1999 | 1999 | 1999 | 1999 | 2008 | 2008 | 2008 | 2008 |
| Generation | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y |
| n | 366 | 433 | 283 | 41 | 308 | 441 | 360 | 306 |
| Mean | 2.2 | 2.8 | 3.5 | 3.4 | 1.7 | 2.0 | 2.4 | 2.6 |
| Mean_low | 2.0 | 2.6 | 3.2 | 2.6 | 1.5 | 1.8 | 2.2 | 2.3 |
| Mean_upp | 2.4 | 3.1 | 3.8 | 4.2 | 1.9 | 2.1 | 2.7 | 2.9 |
# F114A Justifiable: Claiming government benefits to which you are not entitled
F114A <- att %>% select (F114A, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean = round(survey_mean(F114A, vartype = "ci"), 1)) %>%
as.data.frame() %>%
select(-n_se)
head(t(F114A)) %>%
kable(caption = "Table 5. Justifiable: Claiming government benefits to which you are not entitled")
| Year | 1996 | 2006 | 2011 | 2020 |
| n | 2343 | 919 | 1500 | 2758 |
| Mean | 3.2 | 3.4 | 2.7 | 3.2 |
| Mean_low | 3.1 | 3.2 | 2.6 | 3.0 |
| Mean_upp | 3.3 | 3.6 | 2.8 | 3.4 |
# F114A Justifiable: Claiming government benefits to which you are not entitled by generational cohort
F114Ag <- att %>%
select(F114A, Weight, Year, Generation) %>%
na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year, Generation) %>%
summarize(n = round(survey_total()),
Mean = round(survey_mean(F114A, vartype = "ci"), 1)) %>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 6a. Justifiable: Claiming government benefits to which you are not entitled by generational cohort ", t(F114Ag))
| Year | 1996 | 1996 | 1996 | 2006 | 2006 | 2006 | 2006 | 2011 | 2011 | 2011 | 2011 | 2020 | 2020 | 2020 | 2020 | 2020 |
| Generation | Builders | Baby Boomers | Generation X | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Generation Z |
| n | 866 | 973 | 504 | 210 | 307 | 245 | 157 | 263 | 475 | 351 | 411 | 203 | 788 | 700 | 785 | 282 |
| Mean | 3.1 | 3.2 | 3.4 | 2.8 | 3.3 | 3.4 | 4.3 | 2.5 | 2.5 | 2.7 | 3.1 | 2.5 | 3.1 | 3.1 | 3.2 | 3.7 |
| Mean_low | 2.9 | 3.0 | 3.1 | 2.2 | 2.9 | 3.1 | 3.8 | 2.2 | 2.3 | 2.5 | 2.9 | 1.9 | 2.7 | 2.8 | 2.9 | 3.1 |
| Mean_upp | 3.3 | 3.4 | 3.6 | 3.3 | 3.7 | 3.7 | 4.7 | 2.8 | 2.6 | 3.0 | 3.4 | 3.1 | 3.6 | 3.4 | 3.6 | 4.2 |
F114Ags <- F114Ag[c(1:2, 4)]
F114Agsw <- F114Ags %>% pivot_wider(names_from = Generation,
values_from = Mean) %>%
as.data.frame()
F114gsw <- F114gsw %>%
mutate(`Generation Z` = NA)
#### Conbined F114 and F114A
combined_df <- rbind(F114gsw, F114Agsw) %>%
arrange(Year)
kable(caption = "Table 6b. Justifiable: Claiming government benefits to which you are not entitled by generational cohort (for Figure 3) ", t(combined_df))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Builders | 3.1 | 2.2 | 2.8 | 1.7 | 2.5 | 2.5 |
| Baby Boomers | 3.2 | 2.8 | 3.3 | 2.0 | 2.5 | 3.1 |
| Generation X | 3.4 | 3.5 | 3.4 | 2.4 | 2.7 | 3.1 |
| Generation Y | 3.4 | 4.3 | 2.6 | 3.1 | 3.2 | |
| Generation Z | 3.7 |
# F116 Justifiable: Cheating on taxes
F116 <- att %>% select (F116, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean = round(survey_mean(F116, vartype = "ci"), 1)) %>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 7. Justifiable: Cheating on taxes ", t(F116))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| n | 2498 | 1119 | 931 | 1418 | 1500 | 2761 |
| Mean | 3.5 | 3.4 | 3.1 | 2.4 | 2.6 | 3.0 |
| Mean_low | 3.3 | 3.3 | 3.0 | 2.3 | 2.5 | 2.8 |
| Mean_upp | 3.6 | 3.6 | 3.3 | 2.6 | 2.7 | 3.2 |
# F116 Justifiable: Cheating on taxes by generational cohort
F116g <- att %>%
select(F116, Weight, Year, Generation) %>%
na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year, Generation) %>%
summarize(n = round(survey_total()),
Mean = round(survey_mean(F116, vartype = "ci"), 1)) %>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 8a. Justifiable: Cheating on taxes by generational cohort ", t(F116g))
| Year | 1996 | 1996 | 1996 | 1999 | 1999 | 1999 | 1999 | 2006 | 2006 | 2006 | 2006 | 2008 | 2008 | 2008 | 2008 | 2011 | 2011 | 2011 | 2011 | 2020 | 2020 | 2020 | 2020 | 2020 |
| Generation | Builders | Baby Boomers | Generation X | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Generation Z |
| n | 926 | 1045 | 527 | 348 | 435 | 294 | 42 | 217 | 312 | 246 | 156 | 304 | 442 | 366 | 306 | 263 | 475 | 351 | 411 | 193 | 774 | 728 | 787 | 279 |
| Mean | 3.0 | 3.5 | 4.0 | 2.4 | 3.6 | 4.3 | 4.3 | 2.3 | 3.0 | 3.5 | 4.0 | 1.6 | 2.2 | 3.0 | 2.9 | 2.2 | 2.3 | 2.6 | 3.2 | 2.2 | 2.9 | 3.2 | 3.2 | 3.1 |
| Mean_low | 2.8 | 3.4 | 3.8 | 2.2 | 3.4 | 4.0 | 3.4 | 2.0 | 2.7 | 3.2 | 3.6 | 1.5 | 2.0 | 2.7 | 2.6 | 2.0 | 2.1 | 2.3 | 3.0 | 1.7 | 2.5 | 2.8 | 2.8 | 2.8 |
| Mean_upp | 3.2 | 3.7 | 4.3 | 2.6 | 3.9 | 4.7 | 5.2 | 2.6 | 3.3 | 3.7 | 4.4 | 1.8 | 2.4 | 3.3 | 3.2 | 2.4 | 2.4 | 2.8 | 3.5 | 2.6 | 3.2 | 3.7 | 3.5 | 3.5 |
F116gs <- F116g[c(1:2, 4)]
F116gsw <- F116gs %>% pivot_wider(names_from = Generation,
values_from = Mean) %>%
as.data.frame()
kable(caption = "Table 8b. Justifiable: Cheating on taxes by generational cohort (for Figure 4) ", t(F116gsw))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Builders | 3.0 | 2.4 | 2.3 | 1.6 | 2.2 | 2.2 |
| Baby Boomers | 3.5 | 3.6 | 3.0 | 2.2 | 2.3 | 2.9 |
| Generation X | 4.0 | 4.3 | 3.5 | 3.0 | 2.6 | 3.2 |
| Generation Y | 4.3 | 4.0 | 2.9 | 3.2 | 3.2 | |
| Generation Z | 3.1 |
# F131 Justifiable: Paying cash
F131 <- att %>% select (F131, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean = round(survey_mean(F131, vartype = "ci"), 1)) %>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 9. Justifiable: Paying cash ", t(F131))
| Year | 1999 | 2008 |
| n | 1028 | 1328 |
| Mean | 3.5 | 2.6 |
| Mean_low | 3.4 | 2.5 |
| Mean_upp | 3.7 | 2.7 |
merged_df1 <- full_join(F115, F114, by = "Year") %>%
rename(Mean_F115 = Mean.x,
Mean_F114 = Mean.y) %>%
full_join(F114A, by = "Year") %>%
rename(Mean_F114A = Mean) %>%
full_join(F116, by = "Year") %>%
rename(Mean_F116 = Mean) %>%
full_join(F131, by = "Year") %>%
rename(Mean_F131 = Mean) %>%
mutate(Mean_F114_combined = coalesce(Mean_F114, Mean_F114A)) %>%
select(Year, Mean_F115, Mean_F114_combined, Mean_F116, Mean_F131)
merged_df1t<-merged_df1%>%
rename("Avoiding a fare on public transport" = Mean_F115,
"Claiming government benefits to which you are not entitled" = Mean_F114_combined,
"Cheating on taxes" = Mean_F116,
"Paying cash" = Mean_F131)
kable(caption = "Table 10. Justifiable aspects of personal financial practices relating to government systems and public services (for Figure 1)", t(merged_df1t))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Avoiding a fare on public transport | 4.4 | 4.0 | 3.8 | 3.2 | 3.5 | 3.8 |
| Claiming government benefits to which you are not entitled | 3.2 | 2.8 | 3.4 | 2.2 | 2.7 | 3.2 |
| Cheating on taxes | 3.5 | 3.4 | 3.1 | 2.4 | 2.6 | 3.0 |
| Paying cash | 3.5 | 2.6 |
fig1 <- plot_ly(
merged_df1,
x = ~ Year ,
y = ~ Mean_F115,
type = 'bar',
width = 700,
height = 500,
name = "Avoiding a fare on public transport",
hovertext = ~ paste("Avoiding a fare on public transport: ",
Mean_F115)
) %>%
add_trace(
y = ~ Mean_F114_combined,
name = "Claiming government benefits to which <br> you are not entitled",
hovertext = ~ paste(
"Claiming government benefits to which you are not entitled: ",
Mean_F114_combined
)
) %>%
add_trace(
y = ~ Mean_F116,
name = "Cheating on taxes",
hovertext = ~ paste("Cheating on taxes: ",
Mean_F116)
) %>%
add_trace(
y = ~ Mean_F131,
name = "Paying cash",
hovertext = ~ paste("Paying cash: ",
Mean_F131)
) %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.31,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig1
Figure 1. Justifiable aspects of personal financial practices relating to government systems and public services
fig2 <- plot_ly(
data = F115w,
x = ~ Year,
y = ~ `Builders`,
name = "Builders",
type = "scatter",
mode = "lines",
width = 700,
height = 500) %>%
add_trace(y = ~ `Baby Boomers`, name = "Baby Boomers") %>%
add_trace(y = ~ `Generation X`, name = "Generation X") %>%
add_trace(y = ~ `Generation Y`, name = "Generation Y") %>%
add_markers(x = ~ Year[Year == 2020],
y = ~ `Generation Z`,
name = "Generation Z") %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.2,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig2
Figure 2. Justifiable aspect of voiding a fare on public transport by generational cohort
fig3 <- plot_ly(
data = combined_df,
x = ~ Year,
y = ~ `Builders`,
name = "Builders",
type = "scatter",
mode = "lines",
width = 700,
height = 500
) %>%
add_trace(y = ~ `Baby Boomers`, name = "Baby Boomers") %>%
add_trace(y = ~ `Generation X`, name = "Generation X") %>%
add_trace(y = ~ `Generation Y`, name = "Generation Y") %>%
add_markers(x = ~ Year[Year == 2020],
y = ~ `Generation Z`,
name = "Generation Z") %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.2,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig3
Figure 3. Justifiable aspect of claiming government benefits to which you are not entitled by generational cohort
fig4 <- plot_ly(
data = F116gsw,
x = ~ Year,
y = ~ `Builders`,
name = "Builders",
type = "scatter",
mode = "lines",
width = 700,
height = 500
) %>%
add_trace(y = ~ `Baby Boomers`, name = "Baby Boomers") %>%
add_trace(y = ~ `Generation X`, name = "Generation X") %>%
add_trace(y = ~ `Generation Y`, name = "Generation Y") %>%
add_markers(x = ~ Year[Year == 2020],
y = ~ `Generation Z`,
name = "Generation Z") %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.2,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig4
Figure 4. Justifiable aspect of cheating on taxes by generational cohort
## F117 Justifiable: Someone accepting a bribe
F117<- att %>% select (F117, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F117, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 11. Justifiable: Someone accepting a bribe", t(F117))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| n | 2680 | 1169 | 944 | 1485 | 1500 | 2860 |
| Mean | 2.0 | 2.1 | 2.5 | 1.6 | 2.0 | 2.0 |
| Mean_low | 1.9 | 1.9 | 2.3 | 1.5 | 1.9 | 1.9 |
| Mean_upp | 2.0 | 2.2 | 2.6 | 1.7 | 2.1 | 2.1 |
## F117 Justifiable: Someone accepting a bribe by generational cohort
F117g <- att %>%
select(F117, Weight, Year, Generation) %>%
na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year, Generation) %>%
summarize(
n = round(survey_total()),
Mean = round(survey_mean(F117, vartype = "ci"), 1)
) %>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 12a. Justifiable: Someone accepting a bribe by generational cohort", t(F117g))
| Year | 1996 | 1996 | 1996 | 1999 | 1999 | 1999 | 1999 | 2006 | 2006 | 2006 | 2006 | 2008 | 2008 | 2008 | 2008 | 2011 | 2011 | 2011 | 2011 | 2020 | 2020 | 2020 | 2020 | 2020 |
| Generation | Builders | Baby Boomers | Generation X | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Generation Z |
| n | 1021 | 1093 | 566 | 376 | 446 | 304 | 44 | 222 | 320 | 245 | 157 | 321 | 465 | 382 | 316 | 263 | 475 | 351 | 411 | 203 | 809 | 747 | 804 | 297 |
| Mean | 1.7 | 2.0 | 2.4 | 1.6 | 1.9 | 2.7 | 2.6 | 2.0 | 2.3 | 2.7 | 3.1 | 1.3 | 1.4 | 1.8 | 1.9 | 1.7 | 1.7 | 2.1 | 2.5 | 1.4 | 1.9 | 2.0 | 2.0 | 2.3 |
| Mean_low | 1.6 | 1.9 | 2.2 | 1.4 | 1.8 | 2.4 | 2.0 | 1.6 | 2.0 | 2.4 | 2.7 | 1.2 | 1.3 | 1.7 | 1.7 | 1.6 | 1.6 | 1.9 | 2.3 | 1.2 | 1.7 | 1.8 | 1.9 | 1.8 |
| Mean_upp | 1.8 | 2.1 | 2.6 | 1.7 | 2.1 | 3.0 | 3.2 | 2.4 | 2.5 | 3.0 | 3.4 | 1.5 | 1.5 | 2.0 | 2.1 | 1.9 | 1.8 | 2.3 | 2.7 | 1.6 | 2.1 | 2.3 | 2.2 | 2.8 |
F117gs<-F117g[c(1:2, 4)]
F117gsw<-F117gs %>% pivot_wider(names_from=Generation,
values_from = Mean)%>%
as.data.frame()
kable(caption = "Table 12b. Justifiable: Someone accepting a bribe by generational cohort (for Figure 6)", t(F117gsw))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Builders | 1.7 | 1.6 | 2.0 | 1.3 | 1.7 | 1.4 |
| Baby Boomers | 2.0 | 1.9 | 2.3 | 1.4 | 1.7 | 1.9 |
| Generation X | 2.4 | 2.7 | 2.7 | 1.8 | 2.1 | 2.0 |
| Generation Y | 2.6 | 3.1 | 1.9 | 2.5 | 2.0 | |
| Generation Z | 2.3 |
## F114B Justifiable: Stealing property
F114B<- att %>% select (F114B, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F114B, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 13. Justifiable: Stealing property", t(F114B))
| Year | 2011 | 2020 |
| n | 1500 | 1260 |
| Mean | 1.7 | 2.0 |
| Mean_low | 1.6 | 1.9 |
| Mean_upp | 1.7 | 2.1 |
## F139 Justifiable: Buy stolen goods
F139<- att %>% select (F139, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F139, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 14. Justifiable: Buy stolen goods", t(F139))
| Year | 1996 |
| n | 2679 |
| Mean | 1.8 |
| Mean_low | 1.8 |
| Mean_upp | 1.9 |
## F125 Justifiable: Joyriding
F125<- att %>% select (F125, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F125, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 15. Justifiable: Joyriding", t(F125))
| Year | 1999 | 2008 |
| n | 1192 | 1465 |
| Mean | 1.4 | 1.3 |
| Mean_low | 1.3 | 1.3 |
| Mean_upp | 1.5 | 1.4 |
merged_df2 <- full_join(F117, F114B,by = "Year") %>%
rename(Mean_F117 = Mean.x,
Mean_F114B = Mean.y
) %>%
full_join(F139, by = "Year") %>%
rename(Mean_F139 = Mean
) %>%
full_join(F125, by = "Year") %>%
rename(Mean_F125 = Mean
) %>%
select(Year, Mean_F117, Mean_F139, Mean_F114B, Mean_F125)
merged_df2t<-merged_df2%>%
rename("Someone accepting a bribe" = Mean_F117,
"Buy stolen goods" = Mean_F139,
"Stealing property" = Mean_F114B,
"Joyriding" = Mean_F125)
kable(caption = "Table 16. Justifiable aspects of offenses against property (for Figure 5)", t(merged_df2t))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Someone accepting a bribe | 2.0 | 2.1 | 2.5 | 1.6 | 2.0 | 2.0 |
| Buy stolen goods | 1.8 | |||||
| Stealing property | 1.7 | 2.0 | ||||
| Joyriding | 1.4 | 1.3 |
fig5 <- plot_ly(merged_df2,
x = ~Year , y = ~Mean_F117,
type = 'bar',
width = 700,
height = 500,
name = "Someone accepting a bribe",
hovertext = ~paste("Someone accepting a bribe:",
Mean_F117)) %>%
add_trace(y = ~Mean_F139,
name = "Buy stolen goods",
hovertext = ~paste("Buy stolen goods:",
Mean_F139)) %>%
add_trace(y = ~Mean_F114B,
name = "Stealing property",
hovertext = ~paste("Stealing property:",
Mean_F114B)) %>%
add_trace(y = ~Mean_F125,
name = "Joyriding",
hovertext = ~paste("Joyriding:",
Mean_F125))%>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.2,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig5
Figure 5. Justifiable aspects of offenses against property
fig6 <- plot_ly(
data = F117gsw,
x = ~ Year,
y = ~ `Builders`,
name = "Builders",
type = "scatter",
mode = "lines",
width = 700,
height = 500
) %>%
add_trace(y = ~ `Baby Boomers`, name = "Baby Boomers") %>%
add_trace(y = ~ `Generation X`, name = "Generation X") %>%
add_trace(y = ~ `Generation Y`, name = "Generation Y") %>%
add_markers(x = ~ Year[Year == 2020],
y = ~ `Generation Z`,
name = "Generation Z") %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.2,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig6
Figure 6. Justifiable aspect of someone accepting a bribe by generational cohort
# F126 Justifiable: Taking soft drugs
F126<- att %>% select (F126, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F126, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 20. Justifiable: Taking soft drugs", t(F126))
| Year | 1999 | 2008 | 2020 |
| n | 1182 | 1486 | 1609 |
| Mean | 1.3 | 1.3 | 2.3 |
| Mean_low | 1.3 | 1.2 | 2.0 |
| Mean_upp | 1.4 | 1.3 | 2.6 |
## F130 Justifiable: Driving under influence of alcohol
F130<- att %>% select (F130, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F130, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 21. Justifiable: Driving under influence of alcohol", t(F130))
| Year | 1999 |
| n | 1190 |
| Mean | 1.6 |
| Mean_low | 1.5 |
| Mean_upp | 1.7 |
merged_df4 <- full_join(F126, F130,by = "Year") %>%
rename(Mean_F126 = Mean.x,
Mean_F130 = Mean.y
) %>%
select(Year, Mean_F126, Mean_F130)
merged_df4t<-merged_df4%>%
rename("Taking soft drugs" = Mean_F126,
"Driving under influence of alcohol" = Mean_F130)
kable(caption = "Table 22. Justifiable aspects of risky behavior (for Figure 8)", t(merged_df4t))
| Year | 1999 | 2008 | 2020 |
| Taking soft drugs | 1.3 | 1.3 | 2.3 |
| Driving under influence of alcohol | 1.6 |
fig8 <- plot_ly(merged_df4,
x = ~Year , y = ~Mean_F130,
type = 'bar',
width = 700,
height = 500,
name = "Driving under influence of alcohol",
hovertext = ~paste("Driving under influence of alcohol:",
Mean_F130)) %>%
add_trace(y = ~Mean_F126,
name = "Taking soft drugs",
hovertext = ~paste("Taking soft drugs:",
Mean_F126), marker = list(color = "green")
) %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.2,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig8
Figure 8. Justifiable aspects of risky behavior
## E290 Justifiable: Political violence
E290<- att %>% select (E290, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(E290, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 23. Justifiable: Political violence", t(E290))
| Year | 2020 |
| n | 2778 |
| Mean | 2.2 |
| Mean_low | 2 |
| Mean_upp | 2.3 |
## F136 Justifiable: Political assassination
F136<- att %>% select (F136, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F136, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 24. Justifiable: Political assassination", t(F136))
| Year | 1999 |
| n | 1160 |
| Mean | 1.4 |
| Mean_low | 1.4 |
| Mean_upp | 1.5 |
## Q192 Justifiable: Terrorism as a political, ideological or religious mean (in WVS_Wave_7_Ukraine_Spss_v5.0.sav)
Q192<- att1 %>% select (Q192, W_WEIGHT) %>% na.omit() %>%
as_survey(weights = W_WEIGHT) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(Q192, vartype = "ci"), 1))%>%
mutate(Year = 2020)%>%
relocate(Year, .before = 1)%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 25. Justifiable: Terrorism as a political, ideological or religious mean ", t(Q192))
| Year | 2020.0 |
| n | 1240.0 |
| Mean | 1.8 |
| Mean_low | 1.7 |
| Mean_upp | 1.9 |
merged_df5 <- full_join(F136, E290, by = "Year") %>%
rename(Mean_E290 = Mean.y ,
Mean_F136 = Mean.x) %>%
select(Year, Mean_F136, Mean_E290) %>%
mutate(Mean_Q192 = ifelse(row_number() == 2, 1.8, NA))
merged_df5t <- merged_df5 %>%
rename("Terrorism as a political, ideological or religious mean" = Mean_Q192,
"Political violence" = Mean_F136,
"Political assassination" = Mean_E290)
kable(caption = "Table 26. Justifiable aspects of politically motivated violence (for Figure 9)", t(merged_df5t))
| Year | 1999 | 2020 |
| Political violence | 1.4 | |
| Political assassination | 2.2 | |
| Terrorism as a political, ideological or religious mean | 1.8 |
fig9 <- plot_ly(
merged_df5,
x = ~ Year ,
y = ~ Mean_Q192 ,
type = 'bar',
width = 700,
height = 500,
name = "Terrorism as a political,<br>ideological or religious mean",
hovertext = ~ paste("Terrorism as a political, ideological or religious mean:",
Mean_Q192)
) %>%
add_trace(
y = ~ Mean_F136,
name = "Political assassination",
hovertext = ~ paste("Political assassination:",
Mean_F136)
) %>%
add_trace(
y = ~ Mean_E290,
name = "Political violence",
hovertext = ~ paste("Political violence:",
Mean_E290)
) %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.25,
text = "Authors' calculations based on the IVS and the WVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig9
Figure 9. Justifiable aspects of politically motivated violence
## F114D Justifiable: Violence against other people
F114D<- att %>% select (F114D, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F114D, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 27. Justifiable: Violence against other people", t(F114D))
| Year | 2011 | 2020 |
| n | 1500 | 1246 |
| Mean | 1.7 | 2.1 |
| Mean_low | 1.6 | 2.0 |
| Mean_upp | 1.8 | 2.2 |
# F199 Justifiable: For a man to beat his wife
F199<- att %>% select (F199, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F199, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 28. Justifiable: For a man to beat his wife ", t(F199))
| Year | 2006 | 2011 | 2020 |
| n | 941 | 1500 | 1245 |
| Mean | 1.9 | 1.7 | 2.0 |
| Mean_low | 1.8 | 1.6 | 1.9 |
| Mean_upp | 2.0 | 1.8 | 2.1 |
## F114C Justifiable: Parents beating children
F114C<- att %>% select (F114C, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F114C, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 29. Justifiable: Parents beating children ", t(F114C))
| Year | 2011 | 2020 |
| n | 1500 | 1233 |
| Mean | 2.3 | 2.5 |
| Mean_low | 2.2 | 2.4 |
| Mean_upp | 2.4 | 2.6 |
merged_df6 <- full_join(F199, F114C, by = "Year") %>%
rename(Mean_F199 = Mean.x,
Mean_F114C = Mean.y
) %>%
full_join(F114D, by = "Year") %>%
rename(Mean_F114D = Mean
) %>%
select(Year, Mean_F199, Mean_F114C, Mean_F114D)
merged_df6t <- merged_df6 %>%
rename("For a man to beat his wife" = Mean_F199,
"Parents beating children" = Mean_F114C,
"Violence against other people" = Mean_F114D)
kable(caption = "Table 30. Justifiable aspects of violence (for Figure 10)", t(merged_df6t))
| Year | 2006 | 2011 | 2020 |
| For a man to beat his wife | 1.9 | 1.7 | 2.0 |
| Parents beating children | 2.3 | 2.5 | |
| Violence against other people | 1.7 | 2.1 |
fig10 <- plot_ly(
merged_df6,
x = ~ Year ,
y = ~ Mean_F114D ,
type = 'bar',
width = 700,
height = 500,
name = "Violence against other people",
hovertext = ~ paste("Violence against other people:",
Mean_F114D)) %>%
add_trace(
y = ~ Mean_F114C,
name = "Parents beating children",
hovertext = ~ paste("Parents beating children:",
Mean_F114C))%>%
add_trace(
y = ~ Mean_F199,
name = "For a man to beat his wife",
hovertext = ~ paste("For a man to beat his wife:",
Mean_F199)
) %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.21,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig10
Figure 10. Justifiable aspects of violence
## F144_01 Justifiable: Invitro fertilization
F144_01<- att %>% select (F144_01, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F144_01, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 31. Justifiable: Invitro fertilization ", t(F144_01))
| Year | 2008 | 2020 |
| n | 1296 | 1496 |
| Mean | 5.8 | 6.4 |
| Mean_low | 5.6 | 6.0 |
| Mean_upp | 6.0 | 6.9 |
## F137 Justifiable: Experiments with human embryos
F137<- att %>% select (F137, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F137, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 32. Justifiable: Experiments with human embryos ", t(F137))
| Year | 2008 |
| n | 1306 |
| Mean | 2.1 |
| Mean_low | 2 |
| Mean_upp | 2.2 |
## F138 Justifiable: Genetic manipulation of food stuffs
F138<- att %>% select (F138, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F138, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 33. Justifiable: Genetic manipulation of food stuffs ", t(F138))
| Year | 2008 |
| n | 1289 |
| Mean | 1.6 |
| Mean_low | 1.5 |
| Mean_upp | 1.6 |
merged_df7 <- full_join(F144_01, F137 , by = "Year") %>%
rename(Mean_F144_01 = Mean.x,
Mean_F137 = Mean.y
) %>%
full_join(F138, by = "Year") %>%
rename(Mean_F138 = Mean
) %>%
select(Year, Mean_F144_01, Mean_F137, Mean_F138)
merged_df7t <- merged_df7 %>%
rename("Invitro fertilization" = Mean_F144_01,
"Experiments with human embryos" = Mean_F137,
"Genetic manipulation of food stuffs" = Mean_F138)
kable(caption = "Table 34. Justifiable aspects of medical and biological issues (for Figure 11)", t(merged_df7t))
| Year | 2008 | 2020 |
| Invitro fertilization | 5.8 | 6.4 |
| Experiments with human embryos | 2.1 | |
| Genetic manipulation of food stuffs | 1.6 |
fig11 <- plot_ly(
merged_df7,
x = ~ Year ,
y = ~ Mean_F138,
type = 'bar',
width = 700,
height = 500,
name = "Genetic manipulation of food stuffs",
hovertext = ~ paste("Genetic manipulation of food stuffs:",
Mean_F138)) %>%
add_trace(
y = ~ Mean_F137,
name = "Experiments with human embryos",
hovertext = ~ paste("Experiments with human embryos:",
Mean_F137))%>%
add_trace(y = ~ Mean_F144_01,
name = "Invitro fertilization",
hovertext = ~ paste("Invitro fertilization:",
Mean_F144_01))%>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.24,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig11
Figure 11. Justifiable aspects of medical and biological issues
## F121 Justifiable: Divorce
F121<- att %>% select (F121, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F121, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 35. Justifiable: Divorce", t(F121))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| n | 2399 | 1124 | 883 | 1405 | 1500 | 2689 |
| Mean | 4.9 | 4.5 | 4.9 | 4.3 | 5.5 | 5.7 |
| Mean_low | 4.8 | 4.3 | 4.7 | 4.2 | 5.3 | 5.5 |
| Mean_upp | 5.0 | 4.6 | 5.1 | 4.5 | 5.6 | 5.9 |
## F121 Justifiable: Divorce by generational cohort
F121g <- att %>%
select(F121, Weight, Year, Generation) %>%
na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year, Generation) %>%
summarize(
n = round(survey_total()),
Mean = round(survey_mean(F121, vartype = "ci"), 1)
) %>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 36a. Justifiable: Divorce by generational cohort ", t(F121g))
| Year | 1996 | 1996 | 1996 | 1999 | 1999 | 1999 | 1999 | 2006 | 2006 | 2006 | 2006 | 2008 | 2008 | 2008 | 2008 | 2011 | 2011 | 2011 | 2011 | 2020 | 2020 | 2020 | 2020 | 2020 |
| Generation | Builders | Baby Boomers | Generation X | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Generation Z |
| n | 922 | 965 | 512 | 368 | 423 | 289 | 43 | 191 | 296 | 242 | 155 | 295 | 446 | 367 | 297 | 263 | 475 | 351 | 411 | 206 | 760 | 693 | 758 | 272 |
| Mean | 4.5 | 5.2 | 5.4 | 3.9 | 4.6 | 5.0 | 4.9 | 3.9 | 5.1 | 5.3 | 5.1 | 3.6 | 4.4 | 4.8 | 4.3 | 4.9 | 5.2 | 5.7 | 5.9 | 5.1 | 5.4 | 5.9 | 5.8 | 6.2 |
| Mean_low | 4.3 | 5.0 | 5.1 | 3.6 | 4.4 | 4.7 | 4.1 | 3.4 | 4.7 | 5.0 | 4.7 | 3.3 | 4.2 | 4.6 | 4.0 | 4.6 | 4.9 | 5.4 | 5.7 | 4.3 | 5.0 | 5.5 | 5.3 | 5.7 |
| Mean_upp | 4.6 | 5.3 | 5.6 | 4.1 | 4.9 | 5.3 | 5.6 | 4.4 | 5.4 | 5.6 | 5.5 | 3.9 | 4.6 | 5.1 | 4.7 | 5.2 | 5.4 | 6.0 | 6.2 | 5.9 | 5.8 | 6.3 | 6.3 | 6.7 |
F121gs<-F121g[c(1:2, 4)]
F121gsw<-F121gs %>% pivot_wider(names_from=Generation,
values_from = Mean)
kable(caption = "Table 36b. Justifiable: Divorce by generational cohort (for Figure 13)", t(F121gsw))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Builders | 4.5 | 3.9 | 3.9 | 3.6 | 4.9 | 5.1 |
| Baby Boomers | 5.2 | 4.6 | 5.1 | 4.4 | 5.2 | 5.4 |
| Generation X | 5.4 | 5.0 | 5.3 | 4.8 | 5.7 | 5.9 |
| Generation Y | 4.9 | 5.1 | 4.3 | 5.9 | 5.8 | |
| Generation Z | 6.2 |
## F120 Justifiable: Abortion
F120<- att %>% select (F120, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F120, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 37. Justifiable: Abortion ", t(F120))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| n | 2359 | 1110 | 881 | 1404 | 1500 | 2703 |
| Mean | 4.2 | 3.8 | 3.9 | 3.4 | 3.7 | 4.2 |
| Mean_low | 4.1 | 3.7 | 3.7 | 3.3 | 3.6 | 4.0 |
| Mean_upp | 4.4 | 4.0 | 4.0 | 3.5 | 3.9 | 4.5 |
## F120 Justifiable: Abortion by generational cohort
F120g <- att %>%
select(F120, Weight, Year, Generation) %>%
na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year, Generation) %>%
summarize(
n = round(survey_total()),
Mean = round(survey_mean(F120, vartype = "ci"), 1)
) %>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 38a. Justifiable: Abortion by generational cohort (for Figure 14) ", t(F120g))
| Year | 1996 | 1996 | 1996 | 1999 | 1999 | 1999 | 1999 | 2006 | 2006 | 2006 | 2006 | 2008 | 2008 | 2008 | 2008 | 2011 | 2011 | 2011 | 2011 | 2020 | 2020 | 2020 | 2020 | 2020 |
| Generation | Builders | Baby Boomers | Generation X | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Generation Z |
| n | 881 | 968 | 510 | 357 | 420 | 290 | 43 | 197 | 294 | 238 | 151 | 297 | 443 | 363 | 301 | 263 | 475 | 351 | 411 | 208 | 767 | 689 | 767 | 273 |
| Mean | 3.8 | 4.5 | 4.6 | 3.2 | 3.9 | 4.4 | 4.5 | 2.7 | 4.2 | 4.4 | 3.9 | 2.9 | 3.5 | 3.8 | 3.4 | 3.3 | 3.6 | 4.0 | 4.0 | 3.5 | 4.2 | 4.3 | 4.2 | 4.9 |
| Mean_low | 3.6 | 4.3 | 4.3 | 3.0 | 3.6 | 4.1 | 3.7 | 2.3 | 3.8 | 4.0 | 3.5 | 2.6 | 3.3 | 3.5 | 3.0 | 3.0 | 3.4 | 3.7 | 3.7 | 2.8 | 3.9 | 4.0 | 3.7 | 4.2 |
| Mean_upp | 3.9 | 4.7 | 4.8 | 3.5 | 4.1 | 4.7 | 5.3 | 3.1 | 4.5 | 4.7 | 4.3 | 3.1 | 3.7 | 4.1 | 3.7 | 3.6 | 3.8 | 4.3 | 4.2 | 4.2 | 4.6 | 4.7 | 4.6 | 5.6 |
F120gs<-F120g[c(1:2, 4)]
F120gsw <- F120gs %>% pivot_wider(names_from = Generation,
values_from = Mean) %>%
as.data.frame()
kable(caption = "Table 38b. Justifiable: Abortion by generational cohort (for Figure 14)", t(F120gsw))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Builders | 3.8 | 3.2 | 2.7 | 2.9 | 3.3 | 3.5 |
| Baby Boomers | 4.5 | 3.9 | 4.2 | 3.5 | 3.6 | 4.2 |
| Generation X | 4.6 | 4.4 | 4.4 | 3.8 | 4.0 | 4.3 |
| Generation Y | 4.5 | 3.9 | 3.4 | 4.0 | 4.2 | |
| Generation Z | 4.9 |
## F118 Justifiable: Homosexuality
F118<- att %>% select (F118, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F118, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 39. Justifiable: Homosexuality (for Figure 15)", t(F118))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| n | 2402 | 1103 | 866 | 1347 | 1500 | 2591 |
| Mean | 2.0 | 2.3 | 2.5 | 1.6 | 2.5 | 2.6 |
| Mean_low | 1.9 | 2.2 | 2.4 | 1.5 | 2.4 | 2.4 |
| Mean_upp | 2.1 | 2.5 | 2.7 | 1.7 | 2.6 | 2.7 |
## F118 Justifiable: Homosexuality by generational cohort
F118g <- att %>%
select(F118, Weight, Year, Generation) %>%
na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year, Generation) %>%
summarize(
n = round(survey_total()),
Mean = round(survey_mean(F118, vartype = "ci"), 1)
) %>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 40a. Justifiable: Homosexuality by generational cohort", t(F118g))
| Year | 1996 | 1996 | 1996 | 1999 | 1999 | 1999 | 1999 | 2006 | 2006 | 2006 | 2006 | 2008 | 2008 | 2008 | 2008 | 2011 | 2011 | 2011 | 2011 | 2020 | 2020 | 2020 | 2020 | 2020 |
| Generation | Builders | Baby Boomers | Generation X | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Builders | Baby Boomers | Generation X | Generation Y | Generation Z |
| n | 906 | 970 | 526 | 344 | 421 | 297 | 42 | 187 | 296 | 233 | 150 | 284 | 426 | 345 | 292 | 263 | 475 | 351 | 411 | 194 | 720 | 680 | 728 | 268 |
| Mean | 1.6 | 2.0 | 2.7 | 1.7 | 2.2 | 3.1 | 3.6 | 1.7 | 2.5 | 2.8 | 3.0 | 1.2 | 1.5 | 1.8 | 1.9 | 2.0 | 2.2 | 2.6 | 3.0 | 2.0 | 2.4 | 2.5 | 2.6 | 3.4 |
| Mean_low | 1.5 | 1.9 | 2.5 | 1.5 | 2.0 | 2.8 | 2.6 | 1.5 | 2.3 | 2.5 | 2.6 | 1.1 | 1.4 | 1.6 | 1.6 | 1.8 | 2.0 | 2.4 | 2.8 | 1.5 | 2.1 | 2.2 | 2.3 | 2.9 |
| Mean_upp | 1.7 | 2.2 | 2.9 | 1.9 | 2.4 | 3.5 | 4.7 | 2.0 | 2.8 | 3.1 | 3.3 | 1.3 | 1.6 | 2.0 | 2.1 | 2.2 | 2.4 | 2.9 | 3.3 | 2.5 | 2.8 | 2.9 | 2.9 | 3.9 |
F118gs<-F118g[c(1:2, 4)]
F118gsw <- F118gs %>% pivot_wider(names_from = Generation,
values_from = Mean) %>%
as.data.frame()
kable(caption = "Table 40b. Justifiable: Homosexuality by generational cohort (for Figure 15)", t(F118gsw))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Builders | 1.6 | 1.7 | 1.7 | 1.2 | 2.0 | 2.0 |
| Baby Boomers | 2.0 | 2.2 | 2.5 | 1.5 | 2.2 | 2.4 |
| Generation X | 2.7 | 3.1 | 2.8 | 1.8 | 2.6 | 2.5 |
| Generation Y | 3.6 | 3.0 | 1.9 | 3.0 | 2.6 | |
| Generation Z | 3.4 |
## F132 Justifiable: Having casual sex
F132<- att %>% select (F132, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F132, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 41. Justifiable: Having casual sex", t(F132))
| Year | 1999 | 2008 | 2020 |
| n | 1122 | 1398 | 2614 |
| Mean | 2.8 | 2.5 | 3.8 |
| Mean_low | 2.6 | 2.4 | 3.6 |
| Mean_upp | 2.9 | 2.6 | 4.0 |
## F135A Justifiable: Sex before marriage
F135A<- att %>% select (F135A, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F135A, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 42. Justifiable: Sex before marriage ", t(F135A))
| Year | 2011 | 2020 |
| n | 1500 | 1073 |
| Mean | 5.7 | 5.9 |
| Mean_low | 5.5 | 5.8 |
| Mean_upp | 5.8 | 6.1 |
## F128 Justifiable: Adultery
F128<- att %>% select (F128, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F128, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 43. Justifiable: Adultery ", t(F128))
| Year | 1999 | 2008 |
| n | 1160 | 1456 |
| Mean | 2.5 | 1.9 |
| Mean_low | 2.4 | 1.8 |
| Mean_upp | 2.6 | 2.0 |
## F135 Justifiable: Sex under the legal age of consent
F135<- att %>% select (F135, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F135, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 44. Justifiable: Sex under the legal age of consent", t(F135))
| Year | 1999 |
| n | 1106 |
| Mean | 2.7 |
| Mean_low | 2.6 |
| Mean_upp | 2.9 |
## F119 Justifiable: Prostitution
F119<- att %>% select (F119, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F119, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 45. Justifiable: Prostitution", t(F119))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| n | 2580 | 1162 | 914 | 1428 | 1500 | 2670 |
| Mean | 2.2 | 2.1 | 2.5 | 1.9 | 2.6 | 3.0 |
| Mean_low | 2.1 | 1.9 | 2.3 | 1.8 | 2.5 | 2.8 |
| Mean_upp | 2.2 | 2.2 | 2.6 | 2.0 | 2.7 | 3.2 |
merged_df8 <- full_join(F121, F119,by = "Year") %>%
rename(Mean_F121 = Mean.x,
Mean_F119 = Mean.y
) %>%
full_join(F118, by = "Year") %>%
rename(Mean_F118 = Mean
) %>%
full_join(F120, by = "Year") %>%
rename(Mean_F120 = Mean
) %>%
full_join(F128, by = "Year") %>%
rename(Mean_F128 = Mean
) %>%
full_join(F132, by = "Year") %>%
rename(Mean_F132 = Mean
) %>%
full_join(F135, by = "Year") %>%
rename(Mean_F135 = Mean
) %>%
full_join(F135A, by = "Year") %>%
rename(Mean_F135A = Mean
) %>%
select(Year, Mean_F121, Mean_F119, Mean_F118, Mean_F120,
Mean_F128, Mean_F132, Mean_F135, Mean_F135A)
merged_df8t <- merged_df8 %>%
rename("Divorce" = Mean_F121,
"Prostitution" = Mean_F119,
"Homosexuality" = Mean_F118,
"Abortion" = Mean_F120,
"Adultery" = Mean_F128,
"Having casual sex" = Mean_F132,
"Sex under the legal age of consent" = Mean_F135,
"Sex before marriage" = Mean_F135A)
kable(caption = "Table 46. Justifiable aspects of sexual behavior and relationships (for Figure 12)", t(merged_df8t))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Divorce | 4.9 | 4.5 | 4.9 | 4.3 | 5.5 | 5.7 |
| Prostitution | 2.2 | 2.1 | 2.5 | 1.9 | 2.6 | 3.0 |
| Homosexuality | 2.0 | 2.3 | 2.5 | 1.6 | 2.5 | 2.6 |
| Abortion | 4.2 | 3.8 | 3.9 | 3.4 | 3.7 | 4.2 |
| Adultery | 2.5 | 1.9 | ||||
| Having casual sex | 2.8 | 2.5 | 3.8 | |||
| Sex under the legal age of consent | 2.7 | |||||
| Sex before marriage | 5.7 | 5.9 |
fig12 <- plot_ly(
merged_df8,
x = ~ Year ,
y = ~ Mean_F118,
type = 'bar',
width = 700,
height = 500,
name = "Homosexuality",
hovertext = ~ paste("Homosexuality:",
Mean_F118), marker = list(color = "brown"))%>%
add_trace(
y = ~ Mean_F119,
name = "Prostitution",
hovertext = ~ paste(
"Prostitution:",
Mean_F119), marker = list(color = ""))%>%
add_trace(
y = ~ Mean_F128,
name = "Adultery",
hovertext = ~ paste(
"Adultery:",
Mean_F128), marker = list(color = ""))%>%
add_trace(
y = ~ Mean_F135,
name = "Sex under the legal age of consent",
hovertext = ~ paste("Sex under the legal age of consent:",
Mean_F135), marker = list(color = ""))%>%
add_trace(
y = ~ Mean_F132,
name = "Having casual sex",
hovertext = ~ paste("Having casual sex:",
Mean_F132), marker = list(color = "")) %>%
add_trace(
y = ~ Mean_F120,
name = "Abortion",
hovertext = ~ paste("Abortion:",
Mean_F120), marker = list(color = ""))%>%
add_trace(
x = ~ Year ,
y = ~ Mean_F121,
name = "Divorce",
hovertext = ~ paste("Divorce:",
Mean_F121), marker = list(color = ""))%>%
add_trace(
y = ~ Mean_F135A,
name = "Sex before marriage",
hovertext = ~ paste("Sex before marriage:",
Mean_F135A), marker = list(color = "")) %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.37,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig12
Figure 12. Justifiable aspects of sexual behavior and relationships
fig13 <- plot_ly(
data = F121gsw,
x = ~ Year,
y = ~ `Builders`,
name = "Builders",
type = "scatter",
mode = "lines",
width = 700,
height = 500) %>%
add_trace(y = ~ `Baby Boomers`, name = "Baby Boomers") %>%
add_trace(y = ~ `Generation X`, name = "Generation X") %>%
add_trace(y = ~ `Generation Y`, name = "Generation Y") %>%
add_markers(x = ~ Year[Year == 2020],
y = ~ `Generation Z`,
name = "Generation Z") %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.2,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig13
Figure 13. Justifiable aspect of divorce by generational cohort
fig14 <- plot_ly(
data = F120gsw,
x = ~ Year,
y = ~ `Builders`,
name = "Builders",
type = "scatter",
mode = "lines",
width = 700,
height = 500) %>%
add_trace(y = ~ `Baby Boomers`, name = "Baby Boomers") %>%
add_trace(y = ~ `Generation X`, name = "Generation X") %>%
add_trace(y = ~ `Generation Y`, name = "Generation Y") %>%
add_markers(x = ~ Year[Year == 2020],
y = ~ `Generation Z`,
name = "Generation Z") %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.2,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig14
Figure 14. Justifiable aspect of abortion by generational cohort
fig15 <- plot_ly(
data = F118gsw,
x = ~ Year,
y = ~ `Builders`,
name = "Builders",
type = "scatter",
mode = "lines",
width = 700,
height = 500) %>%
add_trace(y = ~ `Baby Boomers`, name = "Baby Boomers") %>%
add_trace(y = ~ `Generation X`, name = "Generation X") %>%
add_trace(y = ~ `Generation Y`, name = "Generation Y") %>%
add_markers(x = ~ Year[Year == 2020],
y = ~ `Generation Z`,
name = "Generation Z") %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.2,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig15
Figure 15. Justifiable aspect of homosexuality by generational cohort
## F122 Justifiable: Euthanasia
F122<- att %>% select (F122, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F122, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 47. Justifiable: Euthanasia", t(F122))
| Year | 1996 | 1999 | 2006 | 2008 | 2020 |
| n | 2188 | 1033 | 836 | 1286 | 2405 |
| Mean | 4.7 | 5.2 | 4.6 | 3.7 | 4.6 |
| Mean_low | 4.6 | 5.0 | 4.3 | 3.5 | 4.3 |
| Mean_upp | 4.9 | 5.4 | 4.8 | 3.9 | 4.9 |
## F123 Justifiable: Suicide
F123<- att %>% select (F123, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F123, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 48. Justifiable: Suicide", t(F123))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| n | 2492 | 1134 | 906 | 1434 | 1500 | 2722 |
| Mean | 2.0 | 1.9 | 2.2 | 1.4 | 1.9 | 2.1 |
| Mean_low | 1.9 | 1.8 | 2.0 | 1.4 | 1.8 | 2.0 |
| Mean_upp | 2.1 | 2.0 | 2.3 | 1.5 | 2.0 | 2.3 |
## F144_02 Justifiable: Death penalty
F144_02<- att %>% select (F144_02, Weight, Year) %>% na.omit() %>%
as_survey(weights = Weight) %>%
group_by(Year) %>%
summarize(n = round(survey_total()),
Mean= round(survey_mean(F144_02, vartype = "ci"), 1))%>%
as.data.frame() %>%
select(-n_se)
kable(caption = "Table 49. Justifiable: Death penalty", t(F144_02))
| Year | 2008 | 2020 |
| n | 1346 | 2516 |
| Mean | 4.8 | 4.4 |
| Mean_low | 4.6 | 4.1 |
| Mean_upp | 4.9 | 4.7 |
merged_df9 <- full_join(F123, F122,by = "Year") %>%
rename(Mean_F123 = Mean.x,
Mean_F122 = Mean.y
) %>%
full_join(F144_02, by = "Year") %>%
rename(Mean_F144_02 = Mean
) %>%
select(Year, Mean_F123, Mean_F122, Mean_F144_02)
merged_df9t <- merged_df9 %>%
rename("Suicide" = Mean_F123,
"Euthanasia" = Mean_F122,
"Death penalty" = Mean_F144_02)
kable(caption = "Table 50. Justifiable aspects of life termination and the death penalty (for Figure 16)", t(merged_df9t))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Suicide | 2.0 | 1.9 | 2.2 | 1.4 | 1.9 | 2.1 |
| Euthanasia | 4.7 | 5.2 | 4.6 | 3.7 | 4.6 | |
| Death penalty | 4.8 | 4.4 |
fig16 <- plot_ly(
merged_df9,
x = ~ Year ,
y = ~ Mean_F123,
type = 'bar',
width = 700,
height = 500,
name = "Suicide",
hovertext = ~ paste("Suicide:",
Mean_F123)
) %>%
add_trace(
y = ~ Mean_F122,
name = "Euthanasia",
hovertext = ~ paste(
"Euthanasia:",
Mean_F122
)
) %>%
add_trace(
y = ~ Mean_F144_02,
name = "Death penalty",
hovertext = ~ paste("Death penalty:",
Mean_F144_02)) %>%
layout(xaxis = list(title = "")) %>%
layout(yaxis = list(title = "Mean")) %>%
layout(legend = list(
orientation = "h",
xanchor = "center",
x = 0.5
)) %>%
layout(
title = list(text =
"Figure 16. Justifiable aspects of life termination and the death penalty")
) %>%
layout(
annotations =
list(
x = 0.57,
y = -0.2,
text = "Authors' calculations based on the IVS data, weighted results.",
showarrow = F,
xref = 'paper',
yref = 'paper',
xanchor = 'right',
yanchor = 'auto',
xshift = 0,
yshift = 0,
font = list(size = 11, color = "grey")
)
)
fig16
Figure 16. Justifiable aspects of life termination and the death penalty
# Explore data
respondents_per_year <- att %>%
group_by(Year) %>%
count()
kable(caption = "Table 51. The ISV data sample sizes", t(respondents_per_year))
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| n | 2811 | 1195 | 1000 | 1507 | 1500 | 2901 |
cat("Unweighted results.")
Unweighted results.
respondents_count <- att1 %>%
rename(Year_WVS = A_YEAR) %>%
count(Year_WVS)
kable(caption = "Table 52. The WVS data sample size", t(respondents_count))
| Year_WVS | 2020 |
| n | 1289 |
cat("Unweighted results.")
Unweighted results.
ordered_pivot_result <- att %>%
group_by(Year, Generation) %>%
summarize(
min_b_y = round(min(birthyear)),
max_b_y = round(max(birthyear))
) %>%
pivot_wider(
names_from = Year,
values_from = c(min_b_y, max_b_y),
names_prefix = "year_"
) %>%
select(
Generation,
"min_b_y_year_1996",
"max_b_y_year_1996",
"min_b_y_year_1999",
"max_b_y_year_1999",
"min_b_y_year_2006",
"max_b_y_year_2006",
"min_b_y_year_2008",
"max_b_y_year_2008",
"min_b_y_year_2011",
"max_b_y_year_2011",
"min_b_y_year_2020",
"max_b_y_year_2020"
)
ordered_pivot_result1 <- mutate(ordered_pivot_result,
"1996" = paste0(min_b_y_year_1996, " - ", max_b_y_year_1996),
"1999" = paste0(min_b_y_year_1999, " - ", max_b_y_year_1999),
"2006" = paste0(min_b_y_year_2006, " - ", max_b_y_year_2006),
"2008" = paste0(min_b_y_year_2008, " - ", max_b_y_year_2008),
"2011" = paste0(min_b_y_year_2011, " - ", max_b_y_year_2011),
"2020" = paste0(min_b_y_year_2020, " - ", max_b_y_year_2020)
)
ordered_pivot_result2 <- select(ordered_pivot_result1,
Generation,
"1996",
"1999",
"2006",
"2008",
"2011",
"2020")%>%
mutate(across(c("1996", "1999", "2006", "2008", "2011", "2020"),
~replace(.x, .x == "NA - NA", NA)))
kable(caption = "Table 53. Minimum and maximum age in generational cohorts by survey year", ordered_pivot_result2)
| Generation | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
|---|---|---|---|---|---|---|
| Builders | 1905 - 1945 | 1909 - 1945 | 1916 - 1945 | 1915 - 1945 | 1922 - 1945 | 1934 - 1945 |
| Baby Boomers | 1946 - 1964 | 1946 - 1964 | 1946 - 1964 | 1946 - 1964 | 1946 - 1964 | 1946 - 1964 |
| Generation X | 1965 - 1978 | 1965 - 1979 | 1965 - 1979 | 1965 - 1979 | 1965 - 1979 | 1965 - 1979 |
| Generation Y | 1980 - 1981 | 1980 - 1988 | 1980 - 1990 | 1980 - 1993 | 1980 - 1994 | |
| Generation Z | 1995 - 2002 |
cat("Unweighted results.")
Unweighted results.
cross_table <- att %>%
group_by(Generation, Year) %>%
summarize(WeightedSum = sum(Weight)) %>%
mutate(WeightedSum = round(WeightedSum)) %>%
pivot_wider(names_from = Generation, values_from = WeightedSum)
head(t(cross_table )) %>%
kable(caption = "Table 54. Minimum and maximum age in generational cohorts by survey year")
| Year | 1996 | 1999 | 2006 | 2008 | 2011 | 2020 |
| Builders | 1068 | 394 | 233 | 326 | 263 | 218 |
| Baby Boomers | 1148 | 456 | 335 | 472 | 475 | 828 |
| Generation X | 595 | 313 | 260 | 387 | 351 | 765 |
| Generation Y | 44 | 172 | 321 | 411 | 825 | |
| Generation Z | 300 |
1. EVS (2022): EVS Trend File 1981-2017. GESIS Data Archive, Cologne. ZA7503 Data file Version 3.0.0.
2. Haerpfer, C., Inglehart, R., Moreno, A., Welzel, C., Kizilova, K., Diez-Medrano J., M. Lagos, P. Norris, E. Ponarin & B. Puranen et al. (eds.). 2022. World Values Survey Trend File (1981-2022) Cross-National Data-Set. Madrid, Spain & Vienna, Austria: JD Systems Institute & WVSA Secretariat. Data File Version 3.0.0.
3. Haerpfer, C., Inglehart, R., Moreno, A., Welzel, C., Kizilova, K., Diez-Medrano J., M. Lagos, P. Norris, E. Ponarin & B. Puranen (eds.). 2022. World Values Survey: Round Seven - Country-Pooled Datafile Version 5.0. Madrid, Spain & Vienna, Austria: JD Systems Institute & WVSA Secretariat.
For attribution, please cite this work as:
Andrii Bova. (2023). Interactive Visualization of Trends in Ukrainian
Moral Attitudes using R. September 1, 2023. URL: https://rpubs.com/abova/tuma.
Last updated: 2023-09-01