Luis Anunciação, Lucas Barrozo
last updated: 16 July, 2021
pacman::p_load(knitr,
kableExtra,
tidyverse,
janitor,
summarytools,
DataExplorer,
readxl)
ds_original_t1 <- read_csv("C:/Users/luisf/Dropbox/Puc-Rio/Projeto - COVID longitudinal/COVID-19 (respostas) - Respostas ao formulário 1.csv")
Duplicated column names deduplicated: 'Sexo' => 'Sexo_1' [137], 'Idade (em anos):' => 'Idade (em anos):_1' [138], 'Sua escolaridade:' => 'Sua escolaridade:_1' [139], 'Estado civil' => 'Estado civil_1' [140], 'O estado que voc攼㹡 mora 攼㸹:' => 'O estado que voc攼㹡 mora 攼㸹:_1' [141], 'A cidade que voc攼㹡 mora 攼㸹?' => 'A cidade que voc攼㹡 mora 攼㸹?_1' [142], 'Quantos filhos voc攼㹡 tem?' => 'Quantos filhos voc攼㹡 tem?_1' [143], 'Voc攼㹡 tem plano de sa昼㹡de?' => 'Voc攼㹡 tem plano de sa昼㹡de?_1' [144], 'Qual das seguintes alternativas melhor descrevem sua situa攼㸷攼㸳o no momento?' => 'Qual das seguintes alternativas melhor descrevem sua situa攼㸷攼㸳o no momento?_1' [145], 'Quantas pessoas, contando com voc攼㹡, moram em sua casa?' => 'Quantas pessoas, contando com voc攼㹡, moram em sua casa?_1' [146], 'Em rela攼㸷攼㸳o 攼㸰 sua renda familiar mensal, ou seja, a renda das pessoas moradoras da mesma casa.' => 'Em rela攼㸷攼㸳o 攼㸰 sua renda familiar mensal, ou seja, a renda das pessoas moradoras da mesma casa._1' [147], 'Quantas pessoas do grupo de risco moram contigo? (ex: pesosas com 60 anos ou mais, portadores de doen攼㸷as card攼㹤acas, hipertens攼㸳o, diabetes, etc)' => 'Quantas pessoas do grupo de risco moram contigo? (ex: pesosas com 60 anos ou mais, portadores de doen攼㸷as card攼㹤acas, hipertens攼㸳o, diabetes, etc)_1' [148], 'N昼㸳s sabemos que quest昼㸵es pol攼㹤ticas s攼㸳o densas e merecem uma especial aten攼㸷攼㸳o. No entanto, em rela攼㸷攼㸳o 攼㸰 orienta攼㸷攼㸳o pol攼㹤tica, eu me considero:' => 'N昼㸳s sabemos que quest昼㸵es pol攼㹤ticas s攼㸳o densas e merecem uma especial aten攼㸷攼㸳o. No entanto, em rela攼㸷攼㸳o 攼㸰 orienta攼㸷攼㸳o pol攼㹤tica, eu me considero:_1' [149], 'No futuro, podemos te contactar para saber sobre sua sa昼㹡de? Se sim, qual 攼㸹 seu e-mail?' => 'No futuro, podemos te contactar para saber sobre sua sa昼㹡de? Se sim, qual 攼㸹 seu e-mail?_1' [150]
-- Column specification ---------------------------------------------------------------------------------------------------------------------------------------------------------------
cols(
.default = col_character(),
`Idade (em anos):` = col_double(),
`Idade (em anos):_1` = col_double(),
`Quantas pessoas, contando com voc攼㹡, moram em sua casa?_1` = col_double()
)
i Use `spec()` for the full column specifications.
backup_ds_t1 <- ds_original_t1
modificar nomes
ds_original_t1 <- clean_names(ds_original_t1)
Remove columns and rows with all missing
ds_original_t1 <- janitor::remove_empty(ds_original_t1, c("rows", "cols")) #useless here
Nome
ds_original_t1 <- ds_original_t1 %>%
rename(email = no_futuro_podemos_te_contactar_para_saber_sobre_sua_saude_se_sim_qual_e_seu_e_mail)
Formato do email
ds_original_t1 <- ds_original_t1 %>%
mutate(email_corrigido = tolower(email))
ds_original_t1 <- ds_original_t1 %>%
mutate(email_corrigido = stringi::stri_trans_general(email_corrigido,"Latin-ASCII"))
ds_original_t1 %>%
count(email_corrigido) %>%
arrange(email_corrigido)
Alterar o e-mail deixando apenas os válidos
ds_original_t1 <- ds_original_t1 %>%
mutate(email_corrigido2 = stringr::str_extract(email_corrigido, '@')) %>% #controle
mutate(email_valido = if_else(email_corrigido2 == "@",1,0)) %>% #controle
mutate(email_corrigido = if_else(email_valido == 1, email_corrigido, NA_character_)) %>%
select(-email_corrigido2, -email_valido)
Tirar caracteres invalidos e respostas invalidas (sim, -)
ds_original_t1 <- ds_original_t1 %>%
mutate(email_corrigido = str_remove_all(email_corrigido, "^sim -")) %>%
mutate(email_corrigido = str_remove_all(email_corrigido, "^sim,")) %>%
mutate(email_corrigido = str_remove_all(email_corrigido, "^sim."))
Tirar espaços
ds_original_t1 <- ds_original_t1 %>%
mutate(email_corrigido = str_trim(email_corrigido, side = c("both", "left", "right")))
Correções manuais feitas post-hoc (após identificar pareamento)
ds_original_t1 %>%
filter(email_corrigido == "henrique.88@anjos@gmail.com")
ds_original_t1 <- ds_original_t1 %>%
mutate(email_corrigido = replace(email_corrigido,
email_corrigido == "henrique.88@anjos@gmail.com", "henrique.88anjos@gmail.com"))
ds_original_t1 %>%
filter(email_corrigido == "liseane.thives@ufsc.br")
ds_original_t1 <- ds_original_t1 %>%
mutate(email_corrigido = replace(email_corrigido,
email_corrigido == "liseane.thives@ufsc.br", "liseanethives@gmail.com"))
[Email lucas em março 25, 2021]
ds_original_t1 %>%
filter(email_corrigido == "henrique.88@anjos@gmail.com") %>% nrow
[1] 0
ds_original_t1 %>%
filter(email_corrigido == "henrique.88anjos@gmail.com") %>% nrow
[1] 1
ds_original_t1 %>%
filter(email_corrigido == "liseane.thives@ufsc.br") %>% nrow
[1] 0
ds_original_t1 %>%
filter(email_corrigido == "liseanethives@gmail.com") %>% nrow
[1] 1
Verificar duplicados
ds_original_t1 %>%
filter(!is.na(email_corrigido)) %>% #descartar missing
group_by(email_corrigido) %>% #agrupar por email
mutate(estudo_1 = length(email_corrigido)) %>% #contar quantas vezes cada participante fez a atividade
filter(estudo_1 >1) %>%
count(email_corrigido) %>%
adorn_totals()
email_corrigido n
isabelle.bbastos@gmail.com 2
itamaralucia@me.com 2
janaina.mocho@gmail.com 2
juliocamacho@gmail.com 2
leoliveira_@outlook.com 2
loraynemercess@gmail.com 2
louiseenunes@gmail.com 2
lramoschaves@gmail.com 2
marianargaze@gmail.com 4
Total 20
A base correta deverá ter quantos casos?
544-20+9
[1] 533
criar uma duplicada para os itens de depressao
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(abaixo_ha_uma_lista_de_sentimentos_e_comportamentos_por_favor_assinale_a_frequencia_com_que_lhe_ocorreram_na_ultima_semana_eu_me_chateei_por_coisas_que_normalmente_nao_me_chateavam:abaixo_ha_uma_lista_de_sentimentos_e_comportamentos_por_favor_assinale_a_frequencia_com_que_lhe_ocorreram_na_ultima_semana_eu_me_sinto_desanimado),
list(cat = ~paste0(.))) %>% #copy all variables (duplicate)
rename_at(vars(ends_with( "_cat")), list(~paste0("ces_t1_", 1:20)))
ajustar valores t1
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("ces_t1_")),
~replace(.,. == "Raramente (menos que 1 dia)", 0))
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("ces_t1_")),
~replace(.,. == "Poucas vezes (1-2 dias)", 1))
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("ces_t1_")),
~replace(.,. == "Às vezes (3-4 dias)", 2))
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("ces_t1_")),
~replace(.,. == "Quase sempre ou sempre (5-7 dias)", 3))
Converter para numerico
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("ces_t1_")), as.numeric)
NAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercion
checar respostas t1
ds_original_t1 %>%
select(starts_with("ces_t1_")) %>%
pivot_longer(everything()) %>%
ggplot(., aes(name, value)) +
geom_boxplot() +
theme_bw() +
theme(axis.text.x = element_text(angle = 45, hjust=1)) +
labs(x = "", y = "")
Inversão dos itens t1
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(ces_t1_4,
ces_t1_8,
ces_t1_12,
ces_t1_16), list(~paste(abs(3-.)) %>% as.numeric(.)))
NAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercion
Checar se não há casos ausentes
ds_original_t1 %>%
filter(neste_momento_em_sua_cidade_ha_alguma_recomendacao_oficial_para_ficar_em_casa_e_ou_evitar_sair != "Não") %>%
select(ces_t1_1:ces_t1_20) %>%
DataExplorer::profile_missing()
Checar se os valores numericos estão corretos
ds_original_t1 %>%
select(abaixo_ha_uma_lista_de_sentimentos_e_comportamentos_por_favor_assinale_a_frequencia_com_que_lhe_ocorreram_na_ultima_semana_eu_me_chateei_por_coisas_que_normalmente_nao_me_chateavam, ces_t1_1)
Checar os invertidos
ds_original_t1 %>%
select(abaixo_ha_uma_lista_de_sentimentos_e_comportamentos_por_favor_assinale_a_frequencia_com_que_lhe_ocorreram_na_ultima_semana_eu_me_senti_tao_bem_quanto_as_outras_pessoas, ces_t1_4)
# EScala de depressão); (20 itens)
ds_original_t1 <- ds_original_t1 %>%
mutate(total_ces_t1 = rowSums(select(.,ces_t1_1:ces_t1_20)))
ds_original_t1 %>% select(total_ces_t1) %>% head()
Ok
Criar uma duplicada com os itens do GAD
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(durante_as_ultimas_02_semanas_com_que_frequencia_voce_foi_incomodado_a_pelos_problemas_abaixo_sentir_se_nervoso_ansioso_ou_muito_tenso:durante_as_ultimas_02_semanas_com_que_frequencia_voce_foi_incomodado_a_pelos_problemas_abaixo_sentir_medo_como_se_algo_horrivel_fosse_acontecer),
list(cat = ~paste0(.))) %>% #copy all variables (duplicate)
rename_at(vars(ends_with( "_cat")), list(~paste0("gad_t1_", 1:7)))
ajustar valores t1
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("gad_t1_")),
~replace(.,. == "Nenhuma vez", 0))
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("gad_t1_")),
~replace(.,. == "Poucos dias", 1))
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("gad_t1_")),
~replace(.,. == "Mais da metade do tempo", 2))
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("gad_t1_")),
~replace(.,. == "Quase todos os dias", 3))
Transformar em numérica t1
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("gad_t1_")), as.numeric)
NAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercion
checar respostas t1
ds_original_t1 %>%
select(starts_with("gad_t1_")) %>%
pivot_longer(everything()) %>%
ggplot(., aes(name, value)) +
geom_boxplot() +
theme_bw() +
theme(axis.text.x = element_text(angle = 45, hjust=1)) +
labs(x = "", y = "")
# EScala de ansiedade; (7 itens)
ds_original_t1 <- ds_original_t1 %>%
mutate(total_gad_t1 = rowSums(select(.,starts_with("gad_t1_"))))
Quais sao os casos duplicados
ds_original_t1 %>%
filter(!is.na(email_corrigido)) %>% #descartar missing
group_by(email_corrigido) %>% #agrupar por email
mutate(estudo_1 = length(email_corrigido)) %>% #contar quantas vezes cada participante fez a atividade
filter(estudo_1 >1) %>%
count(email_corrigido) %>%
adorn_totals()
email_corrigido n
isabelle.bbastos@gmail.com 2
itamaralucia@me.com 2
janaina.mocho@gmail.com 2
juliocamacho@gmail.com 2
leoliveira_@outlook.com 2
loraynemercess@gmail.com 2
louiseenunes@gmail.com 2
lramoschaves@gmail.com 2
marianargaze@gmail.com 4
Total 20
Verificar os resultados são iguais para CES e GAD
ds_original_t1 %>%
filter(!is.na(email_corrigido)) %>% #descartar missing
group_by(email_corrigido) %>% #agrupar por email
mutate(estudo_1 = length(email_corrigido)) %>% #contar quantas vezes cada participante fez a atividade
filter(estudo_1 > 1) %>%
select(total_ces_t1, total_gad_t1) %>%
arrange(email_corrigido) %>%
mutate(lag_ces_t1 = lag(total_ces_t1)-total_ces_t1) %>% #verificar se o valor duplicado é igual
mutate(lag_gad_t1 = lag(total_gad_t1)-total_gad_t1)
Adding missing grouping variables: `email_corrigido`
Deixar apenas 1 resultado
#(533)
ds_original_t1 <- ds_original_t1 %>%
mutate(row_id = row_number()) %>% #criar um numero para cada linha
mutate(email_corrigido = if_else(is.na(email_corrigido),
paste0(row_number()),
email_corrigido)) %>% #se o email é missing, colocar um numero unico
group_by(email_corrigido) %>% #agrupar por email
mutate(group_id = cur_group_id()) %>% #criar uma identificacao unica
mutate(estudo_1 = length(email_corrigido)) %>% #verificar quantas vezes cada participante fez o estudo 1
distinct(email_corrigido, .keep_all = TRUE) %>% #deixar apenas 1 email se houver dois ou mais
ungroup() %>% #desagrupar
mutate(email_corrigido = if_else(str_detect(email_corrigido, "@"),
email_corrigido, NA_character_)) %>% #novamente, colocar missing pros e-mails
select(group_id, row_id,email_corrigido,estudo_1,everything())
Checar se só há uma pessoa para cada caso duplicado
ds_original_t1 %>%
filter(email_corrigido == "isabelle.bbastos@gmail.com" | email_corrigido == "itamaralucia@me.com")
NA
Verificar o tamanho da base
ds_original_t1 %>% nrow
[1] 533
ds_original_t1 %>% names
Rename
ds_original_t1 <- ds_original_t1 %>%
rename(
fica_em_casa_t1 = incluindo_as_horas_que_voce_dorme_quantas_horas_voce_tem_ficado_em_casa,
tem_saido_de_casa = em_media_quantas_vezes_voce_tem_saido_de_casa,
falou_familia_pessoalmente = com_quantas_pessoas_de_sua_familia_voce_falou_hoje_pessoalmente,
falou_familia_telefone = com_quantas_pessoas_de_sua_familia_voce_falou_hoje_por_telefone_ou_video_conferencia,
falou_amigos_telefone = com_quantos_amigos_voce_falou_hoje_por_telefone_ou_video_conferencia,
testou_coronavirus = voce_ja_foi_testado_para_coronavirus,
conhece_alguem_coronavirus = voce_ja_teve_contato_com_alguem_com_coronavirus,
segue_recomendacoes = voce_tem_seguido_as_recomendacoes_gerais_de_higiene_lavar_as_maos_evitar_tocar_no_rosto_etc,
concordo_covid_preocupacao_saude = indique_o_quanto_voce_concorda_o_coronavirus_e_uma_grande_preocupacao_de_saude_publica,
concordo_quarentena = indique_o_quanto_voce_concorda_a_quarentena_foi_uma_medida_acertada,
trabalho_antes_quarentena = antes_da_epoca_de_quarentena_coronavirus_voce,
trabalho_agora_quarentena = agora_nesta_epoca_de_quarantena_coronavirus,
area_profissao = se_voce_trabalha_sua_area_profissional_principal_e,
profissao = a_sua_profissao_e,
renda_antes = em_media_sua_renda_mensal_bruta_em_reais_antes_da_quarentena_coronavirus_era,
renda_quarentena = em_media_sua_renda_mensal_bruta_em_reais_agora_durante_a_quarentena_coronavirus_e,
preocupacao_pagar_conta = voce_esta_preocupado_por_ter_dificuldades_em_pagar_suas_contas_principais_como_aluguel_ou_prestacoes_deste_mes_devido_a_quarentena_coronaviru,
pensa_em_adiar_pagamento = em_caso_afirmativo_pensa_em_adiamento_deste_mes,
preocupacao_economia_geral = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_economia_em_geral,
preocupacao_situacao_financeira = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_sua_propria_situacao_financeira,
preocupacao_sua_saude = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_sua_saude_se_nao_estiver_infectada,
preocupacao_saude_amigos_familia = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_saude_dos_membros_da_familia_e_dos_amigos_proximos,
preocupacao_coesao_social = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_coesao_social,
preocupacao_produtos_alimentacao_higiene_medicamentos = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_fornecimento_de_produtos_importantes_como_alimentos_produtos_de_higiene_e_medicamentos,
preocupacao_preco_produtos = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_acessibilidade_dos_precos_destes_produtos,
preocupacao_preco_acoes = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_evolucao_do_preco_das_acoes_e_de_outras_formas_de_investimento,
preocupacao_realizacao_escolar_filho = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_as_realizacoes_escolares_dos_seus_filhos,
bebida_que_usa = qual_o_tipo_de_bebida_alcoolica_que_voce_mais_consome_deixe_em_branco_se_nenhuma,
idade = idade_em_anos,
escolaridade = sua_escolaridade,
estado = o_estado_que_voce_mora_e,
cidade = a_cidade_que_voce_mora_e,
quantos_filhos = quantos_filhos_voce_tem,
plano_saude = voce_tem_plano_de_saude,
como_vive = qual_das_seguintes_alternativas_melhor_descrevem_sua_situacao_no_momento,
pessoas_na_casa = quantas_pessoas_contando_com_voce_moram_em_sua_casa,
renda_familiar_mensal = em_relacao_a_sua_renda_familiar_mensal_ou_seja_a_renda_das_pessoas_moradoras_da_mesma_casa,
pessoas_em_risco_casa = quantas_pessoas_do_grupo_de_risco_moram_contigo_ex_pesosas_com_60_anos_ou_mais_portadores_de_doencas_cardiacas_hipertensao_diabetes_etc,
orientacao_politica = nos_sabemos_que_questoes_politicas_sao_densas_e_merecem_uma_especial_atencao_no_entanto_em_relacao_a_orientacao_politica_eu_me_considero
)
Transform into factor
ds_original_t1 <- ds_original_t1 %>%
mutate(across(c(fica_em_casa_t1,
tem_saido_de_casa,
falou_familia_pessoalmente,
falou_familia_telefone,
falou_amigos_telefone,
testou_coronavirus,
conhece_alguem_coronavirus,
segue_recomendacoes,
concordo_covid_preocupacao_saude,
concordo_quarentena,
trabalho_antes_quarentena,
trabalho_agora_quarentena,
area_profissao,
preocupacao_pagar_conta,
pensa_em_adiar_pagamento,
preocupacao_economia_geral,
preocupacao_situacao_financeira,
preocupacao_sua_saude,
preocupacao_saude_amigos_familia,
preocupacao_coesao_social,
preocupacao_produtos_alimentacao_higiene_medicamentos,
preocupacao_preco_produtos,
preocupacao_preco_acoes,
preocupacao_realizacao_escolar_filho,
bebida_que_usa,
sexo,
escolaridade,
estado,
cidade,
plano_saude,
como_vive,
renda_familiar_mensal,
pessoas_em_risco_casa,
orientacao_politica),
factor))
Fix some factor levels
Fica em casa
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(fica_em_casa_t1), ~fct_relevel(.,
c("Entre 1 a 4 horas por dia",
"Entre 5 a 8 horas por dia",
"Entre 9 a 12 horas por dia",
"Entre 13 a 16 horas por dia",
"Entre 17 a 20 horas por dia",
"Mais de 20 horas por dia ou o dia todo")))
Sai de casa
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(tem_saido_de_casa), ~fct_relevel(.,
c("Nenhuma",
"1 vez por dia",
"2 vezes por dia",
"3 vezes por dia",
"Mais de 3 vezes por dia")))
Falou familia pessoalmente
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(falou_familia_pessoalmente), ~fct_relevel(.,
c("Nenhuma")))
Preocupacao covid e saude
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(concordo_quarentena, concordo_covid_preocupacao_saude), ~fct_relevel(.,
c("Eu discordo fortemente",
"Eu discordo",
"Estou neutro",
"Eu concordo",
"Eu concordo fortemente")))
preocupacao geral
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(starts_with("preocupacao_")), ~fct_relevel(.,
c("Nenhuma",
"Pouca",
"Bastante",
"Extrema")))
Unknown levels in `f`: Nenhuma, Pouca, Bastante, Extrema
quanto_tempo_voce_acha_que_que_a_vida_voltara_ao_normal
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(quanto_tempo_voce_acha_que_que_a_vida_voltara_ao_normal), ~fct_relevel(.,
c("Antes do segundo semestre de 2020",
"No segundo semestre de 2020",
"Só em 2021",
"2022 ou depois")))
fumo
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(antes_da_quarentena_coronavirus_voce_fumava), ~fct_relevel(.,
c("Não, não fumava",
"Entre 1 e 5 cigarro por dia",
"Até 20 cigarros por dia",
"Mais de 20 cigarros por dia")))
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(agora_durante_a_quarentena_coronavirus_voce_fuma), ~fct_relevel(.,
c("Não, não fumo",
"Entre 1 e 5 cigarro por dia",
"Até 20 cigarros por dia",
"Mais de 20 cigarros por dia")))
Bebida
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(antes_da_quarentena_coronavirus_voce_bebia), ~fct_relevel(.,
c("Não, não bebia")))
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(agora_durante_a_quarentena_coronavirus_voce_bebe), ~fct_relevel(.,
c("Não, não bebo")))
Exercicios fÃsicos
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(antes_da_quarentena_coronavirus_voce_fazia_exercicios_fisicos, agora_durante_a_quarentena_coronavirus_voce_faz_exercicios_fisicos), ~fct_relevel(.,
c("Não, nenhum",
"Pouco (1 vez por semana)",
"Moderado (2 a 3 vezes por semana)",
"Muito (mais que 3 vezes por semana)")))
Escolaridade
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(escolaridade), ~fct_relevel(.,
c("Ensino fundamental incompleto",
"Ensino fundamental completo",
"Ensino médio incompleto",
"Ensino médio completo",
"Ensino superior incompleto",
"Ensino superior completo",
"Pós-graduação")))
Rio e sao paulo
ds_original_t1 <- ds_original_t1 %>%
mutate(rio_sp = case_when(
estado == "Rio de Janeiro (RJ)" ~ "RJ",
estado == "São Paulo (SP)" ~ "SP",
is.na(estado) ~ NA_character_,
TRUE ~ "Outros"))
ds_original_t1 <- ds_original_t1 %>% mutate(rio_sp=as.factor(rio_sp))
Qtos filhos
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(quantos_filhos), ~fct_relevel(.,
c("Nenhum")))
Pessoas na casa
ds_original_t1 <- ds_original_t1 %>%
mutate(pessoas_na_casa = as.numeric(pessoas_na_casa))
Pessoas em risco
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(pessoas_em_risco_casa), ~fct_relevel(.,
c("Nenhuma")))
Renda familiar
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(renda_familiar_mensal), ~fct_relevel(.,
c("Até R$ 1.908",
"Mais de R$ 1.908 até R$ 2.862",
"Mais de R$ 2.862 até R$ 5.724",
"Mais de R$ 5.724 até R$ 9.540",
"Mais de R$ 9.540 até R$ 14.310",
"Acima de R$ 14.310 ate R$ 23.850",
"Acima de R$ 23.850")))
Orientação polÃtica
ds_original_t1 <- ds_original_t1 %>%
mutate_at(vars(orientacao_politica), ~fct_relevel(.,
c("Sou apolÃtico",
"De esquerda",
"De centro esquerda",
"De centro",
"De centro direita",
"De direita")))
Orientacao politica (esquerda vs direita)
ds_original_t1<-ds_original_t1 %>% mutate(politica_dir_esq =
factor(case_when(
orientacao_politica == "De esquerda" ~ "esquerda",
orientacao_politica == "De centro esquerda" ~ "esquerda",
orientacao_politica == "De centro" ~ "centro",
orientacao_politica == "De centro direita" ~ "direita",
orientacao_politica == "De direita" ~ "direita",
orientacao_politica == "Sou apolÃtico" ~ "apolitico")))
ds_original_t1 %>% count(politica_dir_esq)
Estado civil
ds_original_t1 %>% count(estado_civil)
ds_original_t1 <- ds_original_t1 %>%
mutate(estado_civil_corrigido = case_when(
estado_civil == "União estável (mesmo que sem reconhecimento legal)" ~ "Casado(a)",
TRUE ~ estado_civil))
ds_original_t1 <- ds_original_t1 %>%
mutate(estado_civil_corrigido = factor(estado_civil_corrigido))
ds_original_t1 %>% count(estado_civil_corrigido)
Escolaridade superior
ds_original_t1 <- ds_original_t1 %>% mutate(escolaridade_superior =
factor(case_when(
escolaridade == "Ensino superior completo" ~ "Superior",
escolaridade == "Pós-graduação" ~ "Superior",
TRUE ~ "outros")))
ds_original_t1 %>% count(escolaridade_superior)
ds_original_t2 <- read_csv("C:/Users/luisf/Dropbox/Puc-Rio/Projeto - COVID longitudinal/COVID-19 - T2 (Responses) - Form Responses 1.csv")
-- Column specification ---------------------------------------------------------------------------------------------------------------------------------------------------------------
cols(
.default = col_character()
)
i Use `spec()` for the full column specifications.
backup_ds_t2 <- ds_original_t2
Modificar nomes
ds_original_t2 <- clean_names(ds_original_t2)
Remove when all missing
ds_original_t2 <- janitor::remove_empty(ds_original_t2, c("rows", "cols"))
Nome
ds_original_t2 <- ds_original_t2 %>%
rename(email = para_conseguirmos_verificar_suas_respostas_dadas_inicialmente_qual_e_o_seu_e_mail)
Formato do email
ds_original_t2 <- ds_original_t2 %>%
mutate(email_corrigido = tolower(email))
ds_original_t2 <- ds_original_t2 %>%
mutate(email_corrigido = stringi::stri_trans_general(email_corrigido,"Latin-ASCII"))
Tirar espaços
ds_original_t2 <- ds_original_t2 %>%
mutate(email_corrigido = str_trim(email_corrigido, side = c("both", "left", "right"))) %>%
mutate(email_corrigido = str_replace_all(email_corrigido, "\\s", "")) #spaces between
ds_original_t2 %>% select(email_corrigido) %>% View()
Verificar duplicados
ds_original_t2 %>%
filter(!is.na(email_corrigido)) %>% #descartar missing
group_by(email_corrigido) %>% #agrupar por email
mutate(estudo_2 = length(email_corrigido)) %>% #contar quantas vezes cada participante fez a atividade
filter(estudo_2 >1) %>%
count(email_corrigido) %>%
data.frame() %>%
mutate(linha=row_number()) %>%
adorn_totals()
email_corrigido n linha
bea.virginio@gmail.com 2 1
je_souza63@hotmail.com 2 2
lene.arnunes14@gmail.com 2 3
liayukimura@gmail.com 2 4
lpof666.luizpaulo@gmail.com 3 5
lucianamario@yahoo.com.br 2 6
mn.morenogodinho@gmail.com 2 7
rodrigogr1980@hotmail.com 3 8
tassiana1oliveira@gmail.com 2 9
yleskow@pm.me 2 10
Total 22 55
A base correta deverá ter quantos casos?
148-22+10
[1] 136
criar uma duplicada para os itens de depressao
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(abaixo_ha_uma_lista_de_sentimentos_e_comportamentos_por_favor_assinale_a_frequencia_com_que_lhe_ocorreram_na_ultima_semana_eu_me_chateei_por_coisas_que_normalmente_nao_me_chateavam:abaixo_ha_uma_lista_de_sentimentos_e_comportamentos_por_favor_assinale_a_frequencia_com_que_lhe_ocorreram_na_ultima_semana_eu_me_sinto_desanimado),
list(cat = ~paste0(.))) %>% #copy all variables (duplicate)
rename_at(vars(ends_with( "_cat")), list(~paste0("ces_t2_", 1:20)))
ajustar valores t2
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("ces_t2_")),
~replace(.,. == "Raramente (menos que 1 dia)", 0))
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("ces_t2_")),
~replace(.,. == "Poucas vezes (1-2 dias)", 1))
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("ces_t2_")),
~replace(.,. == "Às vezes (3-4 dias)", 2))
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("ces_t2_")),
~replace(.,. == "Quase sempre ou sempre (5-7 dias)", 3))
Converter para numerico
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("ces_t2_")), as.numeric)
NAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercion
checar respostas t2
ds_original_t2 %>%
select(starts_with("ces_t2_")) %>%
pivot_longer(everything()) %>%
ggplot(., aes(name, value)) +
geom_boxplot() +
theme_bw() +
theme(axis.text.x = element_text(angle = 45, hjust=1)) +
labs(x = "", y = "")
Inversão dos itens t2
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(ces_t2_4,
ces_t2_8,
ces_t2_12,
ces_t2_16), list(~paste(abs(3-.)) %>% as.numeric(.)))
NAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercion
Checar se não há casos ausentes
ds_original_t2 %>%
filter(!str_detect(covid_19_aspectos_economicos_e_saude_de_jovens_e_adultos, "Não")) %>% #deixar apenas quem quis participar
select(ces_t2_1:ces_t2_20) %>%
DataExplorer::profile_missing()
Checar se os valores numericos estão corretos
ds_original_t2 %>%
select(abaixo_ha_uma_lista_de_sentimentos_e_comportamentos_por_favor_assinale_a_frequencia_com_que_lhe_ocorreram_na_ultima_semana_eu_me_chateei_por_coisas_que_normalmente_nao_me_chateavam, ces_t2_1)
Checar os invertidos
ds_original_t2 %>%
select(abaixo_ha_uma_lista_de_sentimentos_e_comportamentos_por_favor_assinale_a_frequencia_com_que_lhe_ocorreram_na_ultima_semana_eu_me_senti_tao_bem_quanto_as_outras_pessoas, ces_t2_4)
# EScala de depressão); (20 itens)
ds_original_t2 <- ds_original_t2 %>%
mutate(total_ces_t2 = rowSums(select(.,ces_t2_1:ces_t2_20)))
ds_original_t2 %>% select(total_ces_t2) %>% head()
Ok
Criar uma duplicada com os itens do GAD
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(durante_as_ultimas_02_semanas_com_que_frequencia_voce_foi_incomodado_a_pelos_problemas_abaixo_sentir_se_nervoso_ansioso_ou_muito_tenso:durante_as_ultimas_02_semanas_com_que_frequencia_voce_foi_incomodado_a_pelos_problemas_abaixo_sentir_medo_como_se_algo_horrivel_fosse_acontecer),
list(cat = ~paste0(.))) %>% #copy all variables (duplicate)
rename_at(vars(ends_with( "_cat")), list(~paste0("gad_t2_", 1:7)))
ajustar valores t2
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("gad_t2_")),
~replace(.,. == "Nenhuma vez", 0))
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("gad_t2_")),
~replace(.,. == "Poucos dias", 1))
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("gad_t2_")),
~replace(.,. == "Mais da metade do tempo", 2))
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("gad_t2_")),
~replace(.,. == "Quase todos os dias", 3))
Transformar em numérica t2
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("gad_t2_")), as.numeric)
NAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercion
checar respostas t2
ds_original_t2 %>%
select(starts_with("gad_t2_")) %>%
pivot_longer(everything()) %>%
ggplot(., aes(name, value)) +
geom_boxplot() +
theme_bw() +
theme(axis.text.x = element_text(angle = 45, hjust=1)) +
labs(x = "", y = "")
# EScala de ansiedade; (7 itens)
ds_original_t2 <- ds_original_t2 %>%
mutate(total_gad_t2 = rowSums(select(.,starts_with("gad_t2_"))))
Quais sao os casos duplicados
duplicate_cases_t2 <- ds_original_t2 %>%
filter(!is.na(email_corrigido)) %>% #descartar missing
group_by(email_corrigido) %>% #agrupar por email
mutate(estudo_2 = length(email_corrigido)) %>% #contar quantas vezes cada participante fez a atividade
filter(estudo_2 >1) %>%
count(email_corrigido) %>%
data.frame() %>%
mutate(linha = row_number()) %>%
adorn_totals()
duplicate_cases_t2
email_corrigido n linha
bea.virginio@gmail.com 2 1
je_souza63@hotmail.com 2 2
lene.arnunes14@gmail.com 2 3
liayukimura@gmail.com 2 4
lpof666.luizpaulo@gmail.com 3 5
lucianamario@yahoo.com.br 2 6
mn.morenogodinho@gmail.com 2 7
rodrigogr1980@hotmail.com 3 8
tassiana1oliveira@gmail.com 2 9
yleskow@pm.me 2 10
Total 22 55
Nesta nova base, deverão ficar 136 participantes se os resultados forem iguais
Verificar os resultados são iguais para CES e GAD
equal_t2_ces <- ds_original_t2 %>%
filter(!is.na(email_corrigido)) %>% #descartar missing
group_by(email_corrigido) %>% #agrupar por email
mutate(estudo_2 = length(email_corrigido)) %>% #contar quantas vezes cada participante fez a atividade
filter(estudo_2 > 1) %>% #deixar apenas pessoas que fizeram mais de uma vez o estudo
select(total_ces_t2) %>%
group_by(email_corrigido) %>% #agrupar pela mesma pessoa
mutate(diferenca_ces = total_ces_t2 - lag(total_ces_t2)) %>% #computar diferenças
mutate(quantas_diferencas = length(diferenca_ces)) %>% #quantas vezes a pessoa fez
filter(diferenca_ces == 0 & quantas_diferencas == 2) %>% #se o cara fez duas vezes e respostas iguais, ele fica
arrange(email_corrigido)
Adding missing grouping variables: `email_corrigido`
equal_t2_gad <- ds_original_t2 %>%
filter(!is.na(email_corrigido)) %>% #descartar missing
group_by(email_corrigido) %>% #agrupar por email
mutate(estudo_2 = length(email_corrigido)) %>% #contar quantas vezes cada participante fez a atividade
filter(estudo_2 > 1) %>% #deixar apenas pessoas que fizeram mais de uma vez o estudo
select(total_gad_t2) %>%
group_by(email_corrigido) %>% #agrupar pela mesma pessoa
mutate(diferenca_gad = total_gad_t2 - lag(total_gad_t2)) %>% #computar diferenças
mutate(quantas_diferencas = length(diferenca_gad)) %>% #quantas vezes a pessoa fez
filter(diferenca_gad == 0 & quantas_diferencas == 2) %>% #se o cara fez duas vezes e respostas iguais, ele fica
arrange(email_corrigido)
Adding missing grouping variables: `email_corrigido`
Criar uma base para ver quais participantes tem os mesmos resultados
equal_t2 <- equal_t2_ces %>%
filter(email_corrigido %in% equal_t2_gad)
Refefinir a base para remover os casos em que os valores duplicados são diferentes
duplicate_cases_t2 <- duplicate_cases_t2 %>%
filter(!email_corrigido %in% equal_t2)
Deixar apenas 1 resultado
ds_original_t2 <- ds_original_t2 %>%
filter(!email_corrigido %in% duplicate_cases_t2$email_corrigido)
Tirar o duplicado (o participante que ficou ficou duplicado)
ds_original_t2 <- ds_original_t2 %>%
arrange(email_corrigido) %>%
mutate(row_id = row_number()) %>% #criar um numero para cada linha
mutate(email_corrigido = if_else(is.na(email_corrigido),
paste0(row_number()),
email_corrigido)) %>% #se o email é missing, colocar um numero unico
group_by(email_corrigido) %>% #agrupar por email
mutate(group_id = cur_group_id()) %>% #criar uma identificacao unica
mutate(estudo_2 = length(email_corrigido)) %>% #verificar quantas vezes cada participante fez o estudo 1
distinct(email_corrigido, .keep_all = TRUE) %>% #deixar apenas 1 email se houver dois ou mais
ungroup() %>% #desagrupar
mutate(email_corrigido = if_else(str_detect(email_corrigido, "@"),
email_corrigido, NA_character_)) %>% #novamente, colocar missing pros e-mails
select(group_id, row_id,email_corrigido,estudo_2,everything())
Remover bases provisórias
rm(equal_t2, equal_t2_ces, equal_t2_gad)
ds_original_t2 %>% names
view(dfSummary(ds_original_t2))
Rename
#utils::View(ds_original_t2)
ds_original_t2 <- ds_original_t2 %>%
rename(
fica_em_casa_t2 = atualmente_incluindo_as_horas_que_voce_dorme_quantas_horas_voce_tem_ficado_em_casa,
tem_saido_de_casa = atualmente_em_media_quantas_vezes_voce_tem_saido_de_casa,
segue_recomendacoes = atualmente_voce_tem_seguido_as_recomendacoes_gerais_de_higiene_lavar_as_maos_evitar_tocar_no_rosto_etc,
falou_familia_pessoalmente = com_quantas_pessoas_de_sua_familia_voce_falou_hoje_pessoalmente,
falou_familia_telefone = com_quantas_pessoas_de_sua_familia_voce_falou_hoje_por_telefone_ou_video_conferencia,
falou_amigos_telefone = com_quantos_amigos_voce_falou_hoje_por_telefone_ou_video_conferencia,
concordo_covid_preocupacao_saude = indique_o_quanto_voce_concorda_o_coronavirus_e_uma_grande_preocupacao_de_saude_publica,
concordo_quarentena = indique_o_quanto_voce_concorda_a_quarentena_foi_uma_medida_acertada,
trabalho_apos_quarentena = atualmente_voce,
renda_agora = atualmente_em_media_sua_renda_mensal_bruta_em_reais_e,
preocupacao_pagar_conta = atualmente_voce_esta_preocupado_por_ter_dificuldades_em_pagar_suas_contas_principais_como_aluguel_ou_prestacoes_deste_mes,
pensa_em_adiar_pagamento = em_caso_afirmativo_pensa_em_adiamento_deste_mes,
preocupacao_economia_geral = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_economia_em_geral,
preocupacao_situacao_financeira = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_sua_propria_situacao_financeira,
preocupacao_sua_saude = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_sua_saude_se_nao_estiver_infectado,
preocupacao_saude_amigos_familia = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_saude_dos_membros_da_familia_e_dos_amigos_proximos,
preocupacao_coesao_social = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_coesao_social,
preocupacao_produtos_alimentacao_higiene_medicamentos = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_fornecimento_de_produtos_importantes_como_alimentos_produtos_de_higiene_e_medicamentos,
preocupacao_preco_produtos = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_acessibilidade_dos_precos_destes_produtos,
preocupacao_preco_acoes = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_a_evolucao_do_preco_das_acoes_e_de_outras_formas_de_investimento,
preocupacao_realizacao_escolar_filho = qual_e_a_sua_preocupacao_em_relacao_aos_itens_abaixo_as_realizacoes_escolares_dos_seus_filhos,
bebida_que_usa = qual_o_tipo_de_bebida_alcoolica_que_voce_mais_consome_deixe_em_branco_se_nenhuma,
plano_saude = voce_tem_plano_de_saude,
como_vive = qual_das_seguintes_alternativas_melhor_descrevem_sua_situacao_no_momento,
pessoas_na_casa = quantas_pessoas_contando_com_voce_moram_em_sua_casa,
renda_familiar_mensal = em_relacao_a_sua_renda_familiar_mensal_ou_seja_a_renda_das_pessoas_moradoras_da_mesma_casa,
pessoas_em_risco_casa = quantas_pessoas_do_grupo_de_risco_moram_contigo_ex_pesosas_com_60_anos_ou_mais_portadores_de_doencas_cardiacas_hipertensao_diabetes_etc,
orientacao_politica = nos_sabemos_que_questoes_politicas_sao_densas_e_merecem_uma_especial_atencao_no_entanto_em_relacao_a_orientacao_politica_eu_me_considero
)
Transform into factor
ds_original_t2 <- ds_original_t2 %>%
mutate(across(c(
fica_em_casa_t2,
tem_saido_de_casa,
falou_familia_pessoalmente,
falou_familia_telefone,
falou_amigos_telefone,
segue_recomendacoes,
concordo_covid_preocupacao_saude,
concordo_quarentena,
trabalho_apos_quarentena,
renda_agora,
preocupacao_pagar_conta,
pensa_em_adiar_pagamento,
preocupacao_economia_geral,
preocupacao_situacao_financeira,
preocupacao_sua_saude,
preocupacao_saude_amigos_familia,
preocupacao_coesao_social,
preocupacao_produtos_alimentacao_higiene_medicamentos,
preocupacao_preco_produtos,
preocupacao_preco_acoes,
preocupacao_realizacao_escolar_filho,
atualmente_voce_fuma,
atualmente_voce_bebe,
atualmente_voce_faz_exercicios_fisicos,
atualmente_sua_alimentacao,
atualmente_seu_peso,
bebida_que_usa,
plano_saude,
como_vive,
renda_familiar_mensal,
pessoas_em_risco_casa,
orientacao_politica
),
factor))
Fix some factor levels
Pessoas na casa
ds_original_t2 <- ds_original_t2 %>%
mutate(pessoas_na_casa = as.numeric(pessoas_na_casa))
Pessoas em risco
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(pessoas_em_risco_casa), ~fct_relevel(.,
c("Nenhuma")))
Renda familiar
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(renda_familiar_mensal), ~fct_relevel(.,
c("Até R$ 1.908",
"Mais de R$ 1.908 até R$ 2.862",
"Mais de R$ 2.862 até R$ 5.724",
"Mais de R$ 5.724 até R$ 9.540",
"Mais de R$ 9.540 até R$ 14.310",
"Acima de R$ 14.310 ate R$ 23.850",
"Acima de R$ 23.850")))
Orientação polÃtica
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(orientacao_politica), ~fct_relevel(.,
c("Sou apolÃtico",
"De esquerda",
"De centro esquerda",
"De centro",
"De centro direita",
"De direita")))
Orientação polÃtica direita vs esquerda (t2)
ds_original_t2 <- ds_original_t2 %>% mutate(politica_dir_esq =
factor(case_when(
orientacao_politica == "De esquerda" ~ "esquerda",
orientacao_politica == "De centro esquerda" ~ "esquerda",
orientacao_politica == "De centro" ~ "centro",
orientacao_politica == "De centro direita" ~ "direita",
orientacao_politica == "De direita" ~ "direita",
orientacao_politica == "Sou apolÃtico" ~ "apolitico")))
Fica em casa
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(fica_em_casa_t2), ~fct_relevel(.,
c("Entre 5 a 8 horas por dia",
"Entre 9 a 12 horas por dia",
"Entre 13 a 16 horas por dia",
"Entre 17 a 20 horas por dia",
"Mais de 20 horas por dia ou o dia todo")))
Sai de casa
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(tem_saido_de_casa), ~fct_relevel(.,
c("Nenhuma",
"1 vez por dia",
"2 vezes por dia",
"3 vezes por dia",
"Mais de 3 vezes por dia")))
Falou familia pessoalmente
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(falou_familia_pessoalmente), ~fct_relevel(.,
c("Nenhuma")))
Preocupacao covid e saude
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(concordo_quarentena, concordo_covid_preocupacao_saude), ~fct_relevel(.,
c("Eu discordo fortemente",
"Eu discordo",
"Estou neutro",
"Eu concordo",
"Eu concordo fortemente")))
preocupacao geral
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(starts_with("preocupacao_"),-preocupacao_pagar_conta), ~fct_relevel(.,
c("Nenhuma",
"Pouca",
"Bastante",
"Extrema")))
quanto_tempo_voce_acha_que_que_a_vida_voltara_ao_normal
#diferent from t1
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(quanto_tempo_voce_acha_que_que_a_vida_voltara_ao_normal), ~fct_relevel(.,
c("Já está normal",
"Ainda neste segundo semestre de 2020",
"Só em 2021",
"2022 ou depois")))
fumo
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(atualmente_voce_fuma), ~fct_relevel(.,
c("Não, não fumo",
"Entre 1 e 5 cigarro por dia",
"Até 20 cigarros por dia",
"Mais de 20 cigarros por dia")))
Bebida
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(atualmente_voce_bebe), ~fct_relevel(.,
c("Não, não bebo")))
Exercicios fÃsicos
ds_original_t2 <- ds_original_t2 %>%
mutate_at(vars(atualmente_voce_faz_exercicios_fisicos), ~fct_relevel(.,
c("Não, nenhum",
"Pouco (1 vez por semana)",
"Moderado (2 a 3 vezes por semana)",
"Muito (mais que 3 vezes por semana)")))
Done
ds_t1_t2 <-right_join(
ds_original_t1 %>% filter(!is.na(email_corrigido)),
ds_original_t2 %>% filter(!is.na(email_corrigido)),
by = "email_corrigido")
Some participants at T2 were not at t1 …
ds_t1_t2 <- ds_t1_t2 %>%
filter(!is.na(total_ces_t1)) %>% #nao usar dados ausentes
select(email_corrigido, fica_em_casa_t1, fica_em_casa_t2, total_ces_t1, total_ces_t2, everything()) %>% #organizar
select(-estudo_1, -estudo_2) #tirar indexador do estudo
Create index of leave group
ds_t1_t2 <- ds_t1_t2 %>%
mutate(unique_id = factor(row_number()))%>%
mutate(dif = as.numeric(fica_em_casa_t1)-as.numeric(fica_em_casa_t2)) %>%
mutate(group = factor(if_else(dif > 1,"Leave from home","Stay at home"))) %>% #atencao aqui aos niveis das variaveis categoricas
select(email_corrigido, fica_em_casa_t1, fica_em_casa_t2, dif, group, everything())
ds_t1_t2
frequency of people in each group
ds_t1_t2 %>% count(group)
ds_t1_t2 %>% count(dif)
Create an index to assign all participants that were facing depression and anxiety sympthons at both times
ds_t1_t2 <- ds_t1_t2 %>%
mutate(depression_yes = factor(if_else(total_ces_t1 >= 16 & total_ces_t2 >= 16,"yes","no")))
ds_t1_t2 <- ds_t1_t2 %>%
mutate(anxiety_yes = if_else(total_gad_t1 >= 10 & total_gad_t2 >= 10, "yes","no"))
Count them
ds_t1_t2 %>% count(depression_yes)
ds_t1_t2 %>% count(anxiety_yes)
Create some categorical variables based on raw data
#categorical variables
ds_t1_t2 <- ds_t1_t2 %>%
mutate(across(c(sexo, escolaridade_superior, estado_civil_corrigido, quantos_filhos, plano_saude.x, como_vive.x, renda_familiar_mensal.x, pessoas_em_risco_casa.x,politica_dir_esq.x, politica_dir_esq.y),
.fns = list(cat = ~as.factor(.)),
.names = "{fn}_{col}"))
Create mudanca politica
ds_original_t1 %>% count(orientacao_politica, politica_dir_esq)
ds_original_t2 %>% count(orientacao_politica, politica_dir_esq)
ds_t1_t2 <- ds_t1_t2 %>%
mutate(politica_mudanca =
case_when(politica_dir_esq.x == politica_dir_esq.y ~ "igual",
TRUE ~ "diferente"))
ds_t1_t2 %>% count(politica_mudanca)
Check political wing transition
ds_t1_t2 %>%
filter(politica_mudanca == "diferente") %>%
select(politica_dir_esq.x, politica_dir_esq.y)
ds_t1_t2 %>% filter(!is.na(politica_dir_esq.x), !is.na(politica_dir_esq.y)) %>% count(politica_dir_esq.x)
ds_t1_t2 %>% filter(!is.na(politica_dir_esq.x), !is.na(politica_dir_esq.y)) %>% count(politica_dir_esq.y)
ds_t1_t2 %>%
filter(!is.na(politica_dir_esq.x), !is.na(politica_dir_esq.y)) %>%
tabyl(politica_dir_esq.x, politica_dir_esq.y) %>% #apresentar tabela
adorn_totals(c("row", "col")) %>%
adorn_percentages("row") %>%
adorn_pct_formatting(rounding = "half up", digits = 1) %>%
adorn_ns()
politica_dir_esq.x apolitico centro direita esquerda Total
apolitico 75.0% (18) 8.3% (2) 8.3% (2) 8.3% (2) 100.0% (24)
centro 11.1% (1) 33.3% (3) 0.0% (0) 55.6% (5) 100.0% (9)
direita 11.1% (3) 7.4% (2) 77.8% (21) 3.7% (1) 100.0% (27)
esquerda 7.3% (4) 1.8% (1) 3.6% (2) 87.3% (48) 100.0% (55)
Total 22.6% (26) 7.0% (8) 21.7% (25) 48.7% (56) 100.0% (115)
plot political wing transition
#create a long dataset
d<-ds_t1_t2 %>%
mutate(subject = row_number()) %>%
filter(!is.na(politica_dir_esq.x), !is.na(politica_dir_esq.y)) %>%
select(subject, politica_dir_esq.x, politica_dir_esq.y) %>%
pivot_longer(-subject, names_to = "survey", values_to = "response")
d<-d %>%
group_by(survey,subject, response) %>%
count() %>%
mutate(pct = n / sum(n))
library(ggalluvial)
#change levels order
d <- transform(d,response = factor(response, rev(levels(response))))
#plot
ggplot(d,
aes(x = survey, stratum = response, alluvium = subject,
y = n,
fill = response)) + #data
scale_x_discrete(expand = c(.1, .1)) + #
geom_flow() + #shade area conecting the rectangles
geom_stratum(alpha = .7) +
geom_text(aes(label = paste0(..stratum.., "\n", n, "\n",
scales::percent(..prop..) )), stat = "stratum", size = 3) + #text inside each rectangle
scale_fill_brewer(type = "qual", palette = "Set2") +
theme_void() +
theme(legend.position = "none") #hide legends
check the significance of the political transition
ds_t1_t2 %>%
mutate(subject = row_number()) %>%
filter(!is.na(politica_dir_esq.x), !is.na(politica_dir_esq.y)) %>%
{mcnemar.test(.$politica_dir_esq.x, .$politica_dir_esq.y)}
McNemar's Chi-squared test
data: .$politica_dir_esq.x and .$politica_dir_esq.y
McNemar's chi-squared = 6.2, df = 6, p-value = 0.4012
Formalize political wing
ds_t1_t2 <- ds_t1_t2 %>% mutate(politica_dir_esq_ok = politica_dir_esq.x)
pacman::p_load_gh(
"davidsjoberg/ggsankey"
)
df <- ds_t1_t2 %>%
mutate(subject = row_number()) %>%
select(subject, politica_dir_esq.x, politica_dir_esq.y) %>%
make_long(politica_dir_esq.x, politica_dir_esq.y)
ggplot(df, aes(x = x, next_x = next_x, node = node, next_node = next_node, fill = factor(node), label = node)) +
geom_alluvial(flow.alpha = .6) +
geom_alluvial_text(size = 3, color = "black") +
#scale_fill_viridis_d() +
theme_alluvial(base_size = 18) +
labs(x = NULL) +
theme(legend.position = "none",
plot.title = element_text(hjust = .5))
rm(d, duplicate_cases_t2)
save.image("C:/Users/luisf/Dropbox/Puc-Rio/Projeto - COVID longitudinal/R base - covid 19 longitudinal.RData")