Let’s set up the library packages we might be using for our
analysis
library(tidyverse)
library(haven)
library(janitor)
library(descriptio)
library(weights)
library(kableExtra)
library(totalcensus)
library(cdlTools)
library(expss)
library(openxlsx)
library(survey)
We will now read in and select the variables we will be using for
this analysis for both 2016 and 2023
df_2016 <- read_xpt("./LLCP2016.XPT") %>% select(`_STATE`,`_PSU`,`_STSTR`,
`_LLCPWT`,`_HISPANC`,`_MRACE1`) %>%
filter(`_STATE` == 12 | `_STATE` == 36 | `_STATE` == 72)
df_2016$`_STATE` <- fips(df_2016$`_STATE`, to = 'Abbreviation')
#unzip("./LLCP2023XPT.zip")
df_2023 <- read_xpt("./LLCP2023.XPT") %>% select(`_STATE`,`_PSU`,`_STSTR`,
`_LLCPWT`,`_HISPANC`,`_MRACE1`) %>%
filter(`_STATE` == 12 | `_STATE` == 36 | `_STATE` == 72)
df_2023$`_STATE` <- fips(df_2023$`_STATE`, to = 'Abbreviation')
Once we have read in our data we can clean some of the nomenclature
to make reading the variables easier.
To clean the variable names we are using the clean_names
function.
df_2016 <- clean_names(df_2016)
df_2016$state <- fips(df_2016$state, to = 'Abbreviation')
df_2023 <- clean_names(df_2023)
df_2023$state <- fips(df_2023$state, to = 'Abbreviation')
For the purposes of our analysis we are interested in knowing the
relationship between race and ethnicity. Because no such variable exists
in the data set we will create our own.
2016
df_2016$racexhisp <- NA
df_2016$racexhisp[df_2016$mrace1 == 1 & df_2016$hispanc == 1] <- 1
df_2016$racexhisp[df_2016$mrace1 == 2 & df_2016$hispanc == 1] <- 2
df_2016$racexhisp[df_2016$mrace1 == 3 & df_2016$hispanc == 1] <- 3
df_2016$racexhisp[df_2016$mrace1 == 4 & df_2016$hispanc == 1] <- 4
df_2016$racexhisp[df_2016$mrace1 == 5 & df_2016$hispanc == 1] <- 5
df_2016$racexhisp[df_2016$mrace1 == 6 & df_2016$hispanc == 1] <- 6
df_2016$racexhisp[df_2016$mrace1 == 7 & df_2016$hispanc == 1] <- 7
df_2016$racexhisp[df_2016$mrace1 == 77 & df_2016$hispanc == 1] <- 8
df_2016$racexhisp[df_2016$mrace1 == 99 & df_2016$hispanc == 1] <- 9
#Non Hispanic x race
df_2016$racexhisp[df_2016$mrace1 == 1 & df_2016$hispanc == 2] <- 10
df_2016$racexhisp[df_2016$mrace1 == 2 & df_2016$hispanc == 2] <- 11
df_2016$racexhisp[df_2016$mrace1 == 3 & df_2016$hispanc == 2] <- 12
df_2016$racexhisp[df_2016$mrace1 == 4 & df_2016$hispanc == 2] <- 13
df_2016$racexhisp[df_2016$mrace1 == 5 & df_2016$hispanc == 2] <- 14
df_2016$racexhisp[df_2016$mrace1 == 6 & df_2016$hispanc == 2] <- 15
df_2016$racexhisp[df_2016$mrace1 == 7 & df_2016$hispanc == 2] <- 16
df_2016$racexhisp[df_2016$mrace1 == 77 & df_2016$hispanc == 2] <- 17
df_2016$racexhisp[df_2016$mrace1 == 99 & df_2016$hispanc == 2] <- 18
2023
df_2023$racexhisp <- NA
df_2023$racexhisp[df_2023$mrace1 == 1 & df_2023$hispanc == 1] <- 1
df_2023$racexhisp[df_2023$mrace1 == 2 & df_2023$hispanc == 1] <- 2
df_2023$racexhisp[df_2023$mrace1 == 3 & df_2023$hispanc == 1] <- 3
df_2023$racexhisp[df_2023$mrace1 == 4 & df_2023$hispanc == 1] <- 4
df_2023$racexhisp[df_2023$mrace1 == 5 & df_2023$hispanc == 1] <- 5
df_2023$racexhisp[df_2023$mrace1 == 6 & df_2023$hispanc == 1] <- 6
df_2023$racexhisp[df_2023$mrace1 == 7 & df_2023$hispanc == 1] <- 7
df_2023$racexhisp[df_2023$mrace1 == 77 & df_2023$hispanc == 1] <- 8
df_2023$racexhisp[df_2023$mrace1 == 99 & df_2023$hispanc == 1] <- 9
#Non Hispanic x race
df_2023$racexhisp[df_2023$mrace1 == 1 & df_2023$hispanc == 2] <- 10
df_2023$racexhisp[df_2023$mrace1 == 2 & df_2023$hispanc == 2] <- 11
df_2023$racexhisp[df_2023$mrace1 == 3 & df_2023$hispanc == 2] <- 12
df_2023$racexhisp[df_2023$mrace1 == 4 & df_2023$hispanc == 2] <- 13
df_2023$racexhisp[df_2023$mrace1 == 5 & df_2023$hispanc == 2] <- 14
df_2023$racexhisp[df_2023$mrace1 == 6 & df_2023$hispanc == 2] <- 15
df_2023$racexhisp[df_2023$mrace1 == 7 & df_2023$hispanc == 2] <- 16
df_2023$racexhisp[df_2023$mrace1 == 77 & df_2023$hispanc == 2] <- 17
df_2023$racexhisp[df_2023$mrace1 == 99 & df_2023$hispanc == 2] <- 18
Now we can calculate the mean by state and the confidence
intervals
#Remove scientific notation
options(scipen = 999)
2016
grouped_means_2016 <- svyby(~racexhisp,~state,dsgn_2016,svymean,na.rm = TRUE)
print(grouped_means_2016)
## state racexhispHispanic White racexhispHispanic Black racexhispHispanic AIAN
## FL FL 0.1365516 0.01266810 0.0032641049
## NY NY 0.0852210 0.01828297 0.0139072906
## PR PR 0.5241950 0.07958222 0.0005497857
## racexhispHispanic Asian racexhispHispanic NHPI racexhispHispanic Other
## FL 0.001176365 0.001128852 0.0514772714
## NY 0.001297280 0.005425880 0.0009545119
## PR 0.000000000 0.000000000 0.3703728049
## racexhispHispanic Multirracial racexhispHispanic Not sure
## FL 0.003439138 0.016814873
## NY 0.002709432 0.020997822
## PR 0.005030424 0.009412731
## racexhispHispanic Refused racexhispNon Hispanic White
## FL 0.007638444 0.567058565
## NY 0.026223900 0.558889131
## PR 0.002316281 0.004261472
## racexhispNon Hispanic Black racexhispNon Hispanic AIAN
## FL 0.141348147 0.002561408
## NY 0.140462138 0.002587274
## PR 0.001811949 0.000000000
## racexhispNon Hispanic Asian racexhispNon Hispanic NHPI
## FL 0.02779382595 0.002264212
## NY 0.08789942126 0.004928332
## PR 0.00001511105 0.000000000
## racexhispNon Hispanic Other racexhispNon Hispanic Multirracial
## FL 0.0039028388 0.009291118
## NY 0.0004348652 0.013970119
## PR 0.0021670314 0.000285169
## racexhispNon Hispanic Not sure racexhispNon HispanicRefused
## FL 0.003334038 0.008287114
## NY 0.003143499 0.012665125
## PR 0.000000000 0.000000000
## se.racexhispHispanic White se.racexhispHispanic Black
## FL 0.004245991 0.001514293
## NY 0.003302016 0.001575813
## PR 0.009345580 0.005013087
## se.racexhispHispanic AIAN se.racexhispHispanic Asian
## FL 0.0006650739 0.0004853961
## NY 0.0015273208 0.0003853599
## PR 0.0005496155 0.0000000000
## se.racexhispHispanic NHPI se.racexhispHispanic Other
## FL 0.0002816436 0.002788730
## NY 0.0010121179 0.000367740
## PR 0.0000000000 0.009282129
## se.racexhispHispanic Multirracial se.racexhispHispanic Not sure
## FL 0.0007769581 0.001630460
## NY 0.0005298101 0.001696234
## PR 0.0013411698 0.002144947
## se.racexhispHispanic Refused se.racexhispNon Hispanic White
## FL 0.0013087316 0.005303885
## NY 0.0018480401 0.005497918
## PR 0.0009732361 0.000929032
## se.racexhispNon Hispanic Black se.racexhispNon Hispanic AIAN
## FL 0.0044883752 0.0002847301
## NY 0.0043888830 0.0003189251
## PR 0.0007327994 0.0000000000
## se.racexhispNon Hispanic Asian se.racexhispNon Hispanic NHPI
## FL 0.00221479883 0.0004499372
## NY 0.00441544031 0.0010188252
## PR 0.00001511445 0.0000000000
## se.racexhispNon Hispanic Other se.racexhispNon Hispanic Multirracial
## FL 0.0006065812 0.0009382158
## NY 0.0002469593 0.0014484212
## PR 0.0007853963 0.0002851562
## se.racexhispNon Hispanic Not sure se.racexhispNon HispanicRefused
## FL 0.0007541037 0.000888333
## NY 0.0006509251 0.001188349
## PR 0.0000000000 0.000000000
conf_intervals_2016 <- as.data.frame(confint(grouped_means_2016, level = 0.95))
print(conf_intervals_2016)
## 2.5 % 97.5 %
## FL:racexhispHispanic White 0.12822959028 0.14487357105
## NY:racexhispHispanic White 0.07874917215 0.09169283752
## PR:racexhispHispanic White 0.50587802193 0.54251202361
## FL:racexhispHispanic Black 0.00970014299 0.01563606232
## NY:racexhispHispanic Black 0.01519443686 0.02137151020
## PR:racexhispHispanic Black 0.06975674732 0.08940768777
## FL:racexhispHispanic AIAN 0.00196058390 0.00456762582
## NY:racexhispHispanic AIAN 0.01091379689 0.01690078426
## PR:racexhispHispanic AIAN -0.00052744077 0.00162701220
## FL:racexhispHispanic Asian 0.00022500618 0.00212772380
## NY:racexhispHispanic Asian 0.00054198866 0.00205257153
## PR:racexhispHispanic Asian 0.00000000000 0.00000000000
## FL:racexhispHispanic NHPI 0.00057684020 0.00168086299
## NY:racexhispHispanic NHPI 0.00344216570 0.00740959495
## PR:racexhispHispanic NHPI 0.00000000000 0.00000000000
## FL:racexhispHispanic Other 0.04601146073 0.05694308200
## NY:racexhispHispanic Other 0.00023375485 0.00167526904
## PR:racexhispHispanic Other 0.35218016650 0.38856544331
## FL:racexhispHispanic Multirracial 0.00191632851 0.00496194828
## NY:racexhispHispanic Multirracial 0.00167102343 0.00374784100
## PR:racexhispHispanic Multirracial 0.00240177934 0.00765906832
## FL:racexhispHispanic Not sure 0.01361923107 0.02001051577
## NY:racexhispHispanic Not sure 0.01767326504 0.02432237825
## PR:racexhispHispanic Not sure 0.00520871293 0.01361674909
## FL:racexhispHispanic Refused 0.00507337738 0.01020351095
## NY:racexhispHispanic Refused 0.02260180815 0.02984599222
## PR:racexhispHispanic Refused 0.00040877352 0.00422378884
## FL:racexhispNon Hispanic White 0.55666314196 0.57745398870
## NY:racexhispNon Hispanic White 0.54811341075 0.56966485200
## PR:racexhispNon Hispanic White 0.00244060295 0.00608234135
## FL:racexhispNon Hispanic Black 0.13255109360 0.15014520120
## NY:racexhispNon Hispanic Black 0.13186008505 0.14906419024
## PR:racexhispNon Hispanic Black 0.00037568900 0.00324820987
## FL:racexhispNon Hispanic AIAN 0.00200334737 0.00311946901
## NY:racexhispNon Hispanic AIAN 0.00196219272 0.00321235625
## PR:racexhispNon Hispanic AIAN 0.00000000000 0.00000000000
## FL:racexhispNon Hispanic Asian 0.02345290001 0.03213475189
## NY:racexhispNon Hispanic Asian 0.07924531728 0.09655352524
## PR:racexhispNon Hispanic Asian -0.00001451273 0.00004473484
## FL:racexhispNon Hispanic NHPI 0.00138235102 0.00314607259
## NY:racexhispNon Hispanic NHPI 0.00293147102 0.00692519223
## PR:racexhispNon Hispanic NHPI 0.00000000000 0.00000000000
## FL:racexhispNon Hispanic Other 0.00271396141 0.00509171619
## NY:racexhispNon Hispanic Other -0.00004916609 0.00091889650
## PR:racexhispNon Hispanic Other 0.00062768293 0.00370637990
## FL:racexhispNon Hispanic Multirracial 0.00745224855 0.01112998674
## NY:racexhispNon Hispanic Multirracial 0.01113126580 0.01680897275
## PR:racexhispNon Hispanic Multirracial -0.00027372685 0.00084406484
## FL:racexhispNon Hispanic Not sure 0.00185602245 0.00481205452
## NY:racexhispNon Hispanic Not sure 0.00186770905 0.00441928874
## PR:racexhispNon Hispanic Not sure 0.00000000000 0.00000000000
## FL:racexhispNon HispanicRefused 0.00654601358 0.01002821501
## NY:racexhispNon HispanicRefused 0.01033600434 0.01499424544
## PR:racexhispNon HispanicRefused 0.00000000000 0.00000000000
2023
grouped_means_2023 <- svyby(~racexhisp,~state,dsgn_2023,svymean,na.rm = TRUE)
print(grouped_means_2023)
## state racexhispHispanic White racexhispHispanic Black racexhispHispanic AIAN
## FL FL 0.18136054 0.03062630 0.0074548472
## NY NY 0.09510044 0.02536207 0.0136718469
## PR PR 0.52736928 0.41331151 0.0003496982
## racexhispHispanic Asian racexhispHispanic NHPI racexhispHispanic Other
## FL 0.0005481313 0.00467121345 0.01537421
## NY 0.0009315598 0.00486331567 0.02280307
## PR 0.0001580872 0.00006035944 0.04325074
## racexhispHispanic Multirracial racexhispHispanic Not sure
## FL 0.002868212 0.016321504
## NY 0.003555463 0.024336684
## PR 0.002227131 0.002458408
## racexhispHispanic Refused racexhispNon Hispanic White
## FL 0.002583172 0.518749020
## NY 0.003775015 0.518235241
## PR 0.002469071 0.004365068
## racexhispNon Hispanic Black racexhispNon Hispanic AIAN
## FL 0.136921585 0.0098904227
## NY 0.135778475 0.0028997368
## PR 0.002358022 0.0004464418
## racexhispNon Hispanic Asian racexhispNon Hispanic NHPI
## FL 0.02168703 0.003305805
## NY 0.09863125 0.002435164
## PR 0.00000000 0.000000000
## racexhispNon Hispanic Other racexhispNon Hispanic Multirracial
## FL 0.012936609 0.0227309476
## NY 0.017830300 0.0194275617
## PR 0.000274901 0.0005905468
## racexhispNon Hispanic Not sure racexhispNon HispanicRefused
## FL 0.00254121310 0.0094292339
## NY 0.00272247409 0.0076403314
## PR 0.00008540719 0.0002253259
## se.racexhispHispanic White se.racexhispHispanic Black
## FL 0.008175811 0.004071894
## NY 0.003417395 0.001700300
## PR 0.010495529 0.010377164
## se.racexhispHispanic AIAN se.racexhispHispanic Asian
## FL 0.0018594915 0.0003334369
## NY 0.0013450655 0.0002796211
## PR 0.0003121794 0.0001581129
## se.racexhispHispanic NHPI se.racexhispHispanic Other
## FL 0.00139047348 0.002805216
## NY 0.00091711764 0.001561492
## PR 0.00006038748 0.004478001
## se.racexhispHispanic Multirracial se.racexhispHispanic Not sure
## FL 0.0008777170 0.0025491038
## NY 0.0006230595 0.0014950298
## PR 0.0008753322 0.0008461937
## se.racexhispHispanic Refused se.racexhispNon Hispanic White
## FL 0.0011212046 0.008591443
## NY 0.0006524453 0.005653249
## PR 0.0009380958 0.001055866
## se.racexhispNon Hispanic Black se.racexhispNon Hispanic AIAN
## FL 0.0070429824 0.0018704392
## NY 0.0043781527 0.0004057442
## PR 0.0008378257 0.0004463857
## se.racexhispNon Hispanic Asian se.racexhispNon Hispanic NHPI
## FL 0.003176901 0.0013524552
## NY 0.004265500 0.0005344294
## PR 0.000000000 0.0000000000
## se.racexhispNon Hispanic Other se.racexhispNon Hispanic Multirracial
## FL 0.0019125118 0.0030584433
## NY 0.0018457150 0.0016120933
## PR 0.0002749136 0.0005904796
## se.racexhispNon Hispanic Not sure se.racexhispNon HispanicRefused
## FL 0.0007711810 0.0021572743
## NY 0.0005142536 0.0009830116
## PR 0.0000854273 0.0001328675
conf_intervals_2023 <- as.data.frame(confint(grouped_means_2023, level = 0.95))
print(conf_intervals_2023)
## 2.5 % 97.5 %
## FL:racexhispHispanic White 0.16533624721 0.1973848379
## NY:racexhispHispanic White 0.08840246683 0.1017984107
## PR:racexhispHispanic White 0.50679842249 0.5479401403
## FL:racexhispHispanic Black 0.02264553228 0.0386070645
## NY:racexhispHispanic Black 0.02202954479 0.0286945972
## PR:racexhispHispanic Black 0.39297264371 0.4336503802
## FL:racexhispHispanic AIAN 0.00381031077 0.0110993837
## NY:racexhispHispanic AIAN 0.01103556690 0.0163081269
## PR:racexhispHispanic AIAN -0.00026216223 0.0009615585
## FL:racexhispHispanic Asian -0.00010539301 0.0012016557
## NY:racexhispHispanic Asian 0.00038351246 0.0014796071
## PR:racexhispHispanic Asian -0.00015180842 0.0004679828
## FL:racexhispHispanic NHPI 0.00194593552 0.0073964914
## NY:racexhispHispanic NHPI 0.00306579812 0.0066608332
## PR:racexhispHispanic NHPI -0.00005799785 0.0001787167
## FL:racexhispHispanic Other 0.00987608756 0.0208723336
## NY:racexhispHispanic Other 0.01974260540 0.0258635425
## PR:racexhispHispanic Other 0.03447401971 0.0520274599
## FL:racexhispHispanic Multirracial 0.00114791853 0.0045885059
## NY:racexhispHispanic Multirracial 0.00233428875 0.0047766370
## PR:racexhispHispanic Multirracial 0.00051151113 0.0039427502
## FL:racexhispHispanic Not sure 0.01132535257 0.0213176558
## NY:racexhispHispanic Not sure 0.02140647980 0.0272668889
## PR:racexhispHispanic Not sure 0.00079989913 0.0041169176
## FL:racexhispHispanic Refused 0.00038565177 0.0047806930
## NY:racexhispHispanic Refused 0.00249624580 0.0050537845
## PR:racexhispHispanic Refused 0.00063043672 0.0043077048
## FL:racexhispNon Hispanic White 0.50191010154 0.5355879377
## NY:racexhispNon Hispanic White 0.50715507590 0.5293154060
## PR:racexhispNon Hispanic White 0.00229560831 0.0064345274
## FL:racexhispNon Hispanic Black 0.12311759305 0.1507255769
## NY:racexhispNon Hispanic Black 0.12719745394 0.1443594970
## PR:racexhispNon Hispanic Black 0.00071591365 0.0040001299
## FL:racexhispNon Hispanic AIAN 0.00622442932 0.0135564162
## NY:racexhispNon Hispanic AIAN 0.00210449287 0.0036949808
## PR:racexhispNon Hispanic AIAN -0.00042845813 0.0013213418
## FL:racexhispNon Hispanic Asian 0.01546042024 0.0279136446
## NY:racexhispNon Hispanic Asian 0.09027102097 0.1069914725
## PR:racexhispNon Hispanic Asian 0.00000000000 0.0000000000
## FL:racexhispNon Hispanic NHPI 0.00065504124 0.0059565683
## NY:racexhispNon Hispanic NHPI 0.00138770165 0.0034826263
## PR:racexhispNon Hispanic NHPI 0.00000000000 0.0000000000
## FL:racexhispNon Hispanic Other 0.00918815435 0.0166850629
## NY:racexhispNon Hispanic Other 0.01421276544 0.0214478353
## PR:racexhispNon Hispanic Other -0.00026391978 0.0008137217
## FL:racexhispNon Hispanic Multirracial 0.01673650890 0.0287253863
## NY:racexhispNon Hispanic Multirracial 0.01626791698 0.0225872065
## PR:racexhispNon Hispanic Multirracial -0.00056677203 0.0017478656
## FL:racexhispNon Hispanic Not sure 0.00102972622 0.0040527000
## NY:racexhispNon Hispanic Not sure 0.00171455558 0.0037303926
## PR:racexhispNon Hispanic Not sure -0.00008202724 0.0002528416
## FL:racexhispNon HispanicRefused 0.00520105400 0.0136574138
## NY:racexhispNon HispanicRefused 0.00571366395 0.0095669988
## PR:racexhispNon HispanicRefused -0.00003508965 0.0004857414