Cleaning
IPUMS
### Select Variables
IPUMS <- IPUMS0 %>%
select(YEAR, STATEFIP, PUMA, METAREA, SERIAL, HHWT, REGION, STATEFIP, COUNTYFIP, DENSITY, CITY, CITYPOP, PUMA, PERWT,
HHTYPE, MORTAMT1, RENTGRS, HHINCOME, VALUEH, FAMSIZE, AGE, HCOVPUB,
SCHOOL, EDUC, EDUCD, DEGFIELD, DEGFIELDD, EMPSTAT, EMPSTATD, CLASSWKR, CLASSWKRD,
UHRSWORK, LOOKING, AVAILBLE, INCTOT, POVERTY, TRANTIME, RIDERS) %>%
filter(YEAR != 2011 & (
## St. Cloud
(STATEFIP == 27 & PUMA == 900) |
## Rochester
(STATEFIP == 27 & PUMA == 2500) |
## Duluth
(STATEFIP == 27 & PUMA == 500) |
## Mankato
(STATEFIP == 27 & PUMA == 2200) |
## Fargo
(STATEFIP == 38 & PUMA == 500) |
## Grand Forks
(STATEFIP == 38 & PUMA == 400) |
## Eau Claire
(STATEFIP == 55 & PUMA == 55103) |
## La Crosse
(STATEFIP == 55 & PUMA == 900) |
## Dubuque
(STATEFIP == 19 & PUMA == 700) |
## Cedar Rapids
(STATEFIP == 19 & PUMA == 1000)
)) %>%
mutate(CITYNAME = case_when(
(STATEFIP == 27 & PUMA == 900) ~ "St. Cloud, MN",
(STATEFIP == 27 & PUMA == 2500) ~ "Rochester, MN",
(STATEFIP == 27 & PUMA == 500) ~ "Duluth, MN",
(STATEFIP == 27 & PUMA == 2200) ~ "Mankato, MN",
(STATEFIP == 38 & PUMA == 500) ~ "Fargo, ND",
(STATEFIP == 38 & PUMA == 400) ~ "Grand Forks, ND",
(STATEFIP == 55 & PUMA == 55103) ~ "Eau Claire, WI",
(STATEFIP == 55 & PUMA == 900) ~ "La Crosse, WI",
(STATEFIP == 19 & PUMA == 700) ~ "Dubuque, IA",
(STATEFIP == 19 & PUMA == 1000) ~ "Cedar Rapids, IA"
))
save(IPUMS, file = "IPUMS Data/IPUMS_Cleaned.RData")
write.csv(IPUMS, "IPUMS Data/IPUMS_Cleaned.csv")
IPUMS <- read.csv("IPUMS Data/IPUMS_Cleaned.csv")
IPUMSP <- IPUMS %>%
mutate(
HHINCOME = ifelse(HHINCOME != 9999999, HHINCOME, NA),
INCTOT = ifelse(INCTOT != 9999999, INCTOT, NA),
MORTAMT1 = ifelse(!MORTAMT1 %in% c(0, 1), MORTAMT1, NA),
RENTGRS = ifelse(RENTGRS != 0, RENTGRS, NA),
TRANTIME = ifelse(TRANTIME != 0, TRANTIME, NA),
VALUEH = ifelse(!VALUEH %in% c(0, 9999998, 9999999), VALUEH, NA),
UHRSWORK = ifelse(!UHRSWORK %in% c(0), UHRSWORK, NA),
AVAILABLE = ifelse(!AVAILBLE %in% c(0, 5), ifelse(AVAILBLE == 4, 1, 0), NA),
AVAILLOOK = ifelse((!AVAILBLE %in% c(0, 5) & !LOOKING %in% c(0, 3)), ifelse((AVAILBLE == 4)&(LOOKING == 2), 1, 0), NA),
EDUC = ifelse(EDUC != 0, EDUC, NA),
EDUC2 = case_when(
(EDUC %in% c(1, 2, 3, 4, 5)) ~ "Not Finished HS",
(EDUC %in% c(6)) ~ "HS",
(EDUC %in% c(7, 8, 9, 10, 11)) ~ "Some College"),
HS = ifelse(EDUC2 == "HS", 1, 0),
COL = ifelse(EDUC2 == "Some College", 1, 0)
)
IPUMSHH <- IPUMSP[!duplicated(IPUMSP$SERIAL),] %>%
select(CITYNAME, YEAR, HHWT, HHINCOME, FAMSIZE, MORTAMT1, RENTGRS, VALUEH)
IPUMSP <- IPUMSP %>%
select(CITYNAME, YEAR, PERWT, INCTOT, TRANTIME, AGE, UHRSWORK, AVAILABLE, AVAILLOOK, HS, COL)
write.csv(IPUMSP, "IPUMSP.csv")
write.csv(IPUMSHH, "IPUMSHH.csv")
LAUS
library(readxl)
LAUS <- read_excel("Business Stats/LAUS/LAUS ssamatab1.xlsx",
na = "(n)", skip = 2)
LAUS0 <- LAUS %>%
filter(
Year %in% rep(2012:2020),
Area %in% c("St. Cloud, MN MSA", "Rochester, MN MSA", "Duluth, MN-WI MSA", "Mankato-North Mankato, MN MSA",
"Fargo, ND-MN MSA", "Grand Forks, ND-MN MSA", "Eau Claire, WI MSA",
"La Crosse-Onalaska, WI-MN MSA", "Dubuque, IA MSA", "Cedar Rapids, IA MSA")
)
write.csv(LAUS0, "LAUS_Cleaned.csv")
OEWS
### 2019
MSA_M2019 <- read_excel("Business Stats/OEWS/MSA_M2019_dl.xlsx",
sheet = "All May 2019 Data", na = c("*", "**")) %>%
mutate(YEAR = 2019,
h_mean = ifelse(h_mean == "#", 100, h_mean),
a_mean = ifelse(a_mean == "#", 208000, a_mean)) %>%
select(YEAR, area_title, occ_title, o_group, tot_emp,
jobs_1000, loc_quotient, h_mean, a_mean) %>%
rename(AREA_NAME = area_title,
OCC_TITLE = occ_title,
OCC_GROUP = o_group,
TOT_EMP = tot_emp,
JOBS_1000 = jobs_1000,
'LOC QUOTIENT' = loc_quotient,
H_MEAN = h_mean,
A_MEAN = a_mean)
MSA_M2019$H_MEAN <- as.numeric(MSA_M2019$H_MEAN)
MSA_M2019$A_MEAN <- as.numeric(MSA_M2019$A_MEAN)
### Sample Selection (All Occupation Total Employment (40000, 150000))
rangeCities <- MSA_M2019 %>%
filter(OCC_TITLE == "All Occupations" & (TOT_EMP <= 150000 & TOT_EMP>= 40000)) %>%
select(AREA_NAME)
rangeCities <- rangeCities$AREA_NAME
### 2019
MSA_M2019 <- MSA_M2019 %>%
filter(AREA_NAME %in% rangeCities)
### 2012
MSA_M2012_dl_1_AK_IN <- read_excel("Business Stats/OEWS/MSA_M2012_dl_1_AK_IN.xls", na = c("*", "**"))
MSA_M2012_dl_2_KS_NY <- read_excel("Business Stats/OEWS/MSA_M2012_dl_2_KS_NY.xls", na = c("*", "**"))
MSA_M2012_dl_3_OH_WY <- read_excel("Business Stats/OEWS/MSA_M2012_dl_3_OH_WY.xls", na = c("*", "**"))
MSA_M2012 <- rbind(MSA_M2012_dl_1_AK_IN,
MSA_M2012_dl_2_KS_NY,
MSA_M2012_dl_3_OH_WY) %>%
filter(AREA_NAME %in% rangeCities) %>%
mutate(YEAR = 2012,
H_MEAN = ifelse(H_MEAN == "#", 90, H_MEAN),
A_MEAN = ifelse(A_MEAN == "#", 187200, A_MEAN)) %>%
select(YEAR, AREA_NAME, OCC_TITLE, OCC_GROUP, TOT_EMP,
JOBS_1000, 'LOC QUOTIENT', H_MEAN, A_MEAN)
MSA_M2012$H_MEAN <- as.numeric(MSA_M2012$H_MEAN)
MSA_M2012$A_MEAN <- as.numeric(MSA_M2012$A_MEAN)
rm(MSA_M2012_dl_1_AK_IN,MSA_M2012_dl_2_KS_NY,MSA_M2012_dl_3_OH_WY)
### 2013
MSA_M2013_dl_1_AK_IN <- read_excel("Business Stats/OEWS/MSA_M2013_dl_1_AK_IN.xls", na = c("*", "**"))
MSA_M2013_dl_2_KS_NY <- read_excel("Business Stats/OEWS/MSA_M2013_dl_2_KS_NY.xls", na = c("*", "**"))
MSA_M2013_dl_3_OH_WY <- read_excel("Business Stats/OEWS/MSA_M2013_dl_3_OH_WY.xls", na = c("*", "**"))
MSA_M2013 <- rbind(MSA_M2013_dl_1_AK_IN,
MSA_M2013_dl_2_KS_NY,
MSA_M2013_dl_3_OH_WY) %>%
filter(AREA_NAME %in% rangeCities) %>%
mutate(YEAR = 2013,
H_MEAN = ifelse(H_MEAN == "#", 90, H_MEAN),
A_MEAN = ifelse(A_MEAN == "#", 187200, A_MEAN)) %>%
select(YEAR, AREA_NAME, OCC_TITLE, OCC_GROUP, TOT_EMP,
JOBS_1000, 'LOC QUOTIENT', H_MEAN, A_MEAN)
MSA_M2013$H_MEAN <- as.numeric(MSA_M2013$H_MEAN)
MSA_M2013$A_MEAN <- as.numeric(MSA_M2013$A_MEAN)
rm(MSA_M2013_dl_1_AK_IN,MSA_M2013_dl_2_KS_NY,MSA_M2013_dl_3_OH_WY)
### 2014
MSA_M2014 <- read_excel("Business Stats/OEWS/MSA_M2014_dl.xlsx", na = c("*", "**")) %>%
filter(AREA_NAME %in% rangeCities) %>%
mutate(YEAR = 2014,
H_MEAN = ifelse(H_MEAN == "#", 90, H_MEAN),
A_MEAN = ifelse(A_MEAN == "#", 187200, A_MEAN)) %>%
select(YEAR, AREA_NAME, OCC_TITLE, OCC_GROUP, TOT_EMP,
JOBS_1000, 'LOC QUOTIENT', H_MEAN, A_MEAN)
MSA_M2014$H_MEAN <- as.numeric(MSA_M2014$H_MEAN)
MSA_M2014$A_MEAN <- as.numeric(MSA_M2014$A_MEAN)
### 2015
MSA_M2015 <- read_excel("Business Stats/OEWS/MSA_M2015_dl.xlsx", na = c("*", "**")) %>%
filter(AREA_NAME %in% rangeCities) %>%
mutate(YEAR = 2015,
H_MEAN = ifelse(H_MEAN == "#", 90, H_MEAN),
A_MEAN = ifelse(A_MEAN == "#", 187200, A_MEAN)) %>%
select(YEAR, AREA_NAME, OCC_TITLE, OCC_GROUP, TOT_EMP,
JOBS_1000, 'LOC QUOTIENT', H_MEAN, A_MEAN)
MSA_M2015$H_MEAN <- as.numeric(MSA_M2015$H_MEAN)
MSA_M2015$A_MEAN <- as.numeric(MSA_M2015$A_MEAN)
### 2016
MSA_M2016 <- read_excel("Business Stats/OEWS/MSA_M2016_dl.xlsx", na = c("*", "**")) %>%
filter(AREA_NAME %in% rangeCities) %>%
mutate(YEAR = 2016,
H_MEAN = ifelse(H_MEAN == "#", 100, H_MEAN),
A_MEAN = ifelse(A_MEAN == "#", 208000, A_MEAN)) %>%
select(YEAR, AREA_NAME, OCC_TITLE, OCC_GROUP, TOT_EMP,
JOBS_1000, 'LOC QUOTIENT', H_MEAN, A_MEAN)
MSA_M2016$H_MEAN <- as.numeric(MSA_M2016$H_MEAN)
MSA_M2016$A_MEAN <- as.numeric(MSA_M2016$A_MEAN)
### 2017
MSA_M2017 <- read_excel("Business Stats/OEWS/MSA_M2017_dl.xlsx", na = c("*", "**")) %>%
filter(AREA_NAME %in% rangeCities) %>%
mutate(YEAR = 2017,
H_MEAN = ifelse(H_MEAN == "#", 100, H_MEAN),
A_MEAN = ifelse(A_MEAN == "#", 208000, A_MEAN)) %>%
select(YEAR, AREA_NAME, OCC_TITLE, OCC_GROUP, TOT_EMP,
JOBS_1000, 'LOC QUOTIENT', H_MEAN, A_MEAN)
MSA_M2017$H_MEAN <- as.numeric(MSA_M2017$H_MEAN)
MSA_M2017$A_MEAN <- as.numeric(MSA_M2017$A_MEAN)
### 2018
MSA_M2018 <- read_excel("Business Stats/OEWS/MSA_M2018_dl.xlsx", na = c("*", "**")) %>%
filter(AREA_NAME %in% rangeCities) %>%
mutate(YEAR = 2018,
H_MEAN = ifelse(H_MEAN == "#", 100, H_MEAN),
A_MEAN = ifelse(A_MEAN == "#", 208000, A_MEAN)) %>%
select(YEAR, AREA_NAME, OCC_TITLE, OCC_GROUP, TOT_EMP,
JOBS_1000, 'LOC QUOTIENT', H_MEAN, A_MEAN)
MSA_M2018$H_MEAN <- as.numeric(MSA_M2018$H_MEAN)
MSA_M2018$A_MEAN <- as.numeric(MSA_M2018$A_MEAN)
### 2020
MSA_M2020 <- read_excel("Business Stats/OEWS/MSA_M2020_dl.xlsx",
sheet = "MSA_M2020_dl", na = c("*", "**")) %>%
mutate(YEAR = 2020,
H_MEAN = ifelse(H_MEAN == "#", 100, H_MEAN),
A_MEAN = ifelse(A_MEAN == "#", 208000, A_MEAN)) %>%
select(YEAR, AREA_TITLE, OCC_TITLE, O_GROUP, TOT_EMP,
JOBS_1000, LOC_QUOTIENT, H_MEAN, A_MEAN) %>%
rename(AREA_NAME = AREA_TITLE,
OCC_GROUP = O_GROUP,
'LOC QUOTIENT' = LOC_QUOTIENT) %>%
filter(AREA_NAME %in% rangeCities)
MSA_M2020$H_MEAN <- as.numeric(MSA_M2020$H_MEAN)
MSA_M2020$A_MEAN <- as.numeric(MSA_M2020$A_MEAN)
OEWS_Cleaned <- rbind(MSA_M2012, MSA_M2013, MSA_M2014, MSA_M2015, MSA_M2016,
MSA_M2017, MSA_M2018, MSA_M2019, MSA_M2020)
rm(MSA_M2012, MSA_M2013, MSA_M2014, MSA_M2015, MSA_M2016,
MSA_M2017, MSA_M2018, MSA_M2019, MSA_M2020)
write.csv(OEWS_Cleaned, "OEWS_Cleaned.csv")
IPUMS
Income
## Household Income
leveneTest(HHINCOME ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 4.8431 1.806e-06 ***
## 4679
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(HHINCOME ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 6.3141 6.183e-09 ***
## 4932
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(HHINCOME ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 8.5678 7.685e-13 ***
## 5084
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(IPUMSHHwt, YEAR == 2017)
b <- as.data.frame(DTK.test(x = a$HHINCOME, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(IPUMSHHwt, YEAR == 2018)
b <- as.data.frame(DTK.test(x = a$HHINCOME, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(IPUMSHHwt, YEAR == 2019)
b <- as.data.frame(DTK.test(x = a$HHINCOME, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Rochester, MN |
+1* |
+1* |
+1* |
| Fargo, ND |
+2* |
+2* |
+2* |
| Eau Claire, WI |
+7 |
-9* |
+3* |
| La Crosse, WI |
+6 |
+3* |
+4* |
| Duluth, MN |
-8* |
+6 |
+5 |
| Dubuque, IA |
+4* |
+4* |
+6 |
| Grand Forks, ND |
-9* |
-8 |
-7 |
| Cedar Rapids, IA |
+3* |
+5* |
-8* |
| Mankato, MN |
+5* |
-7 |
-9* |
rm(a, b, City, t2017, t2018, t2019)
## Personal Income
leveneTest(INCTOT ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 7.3962 7.737e-11 ***
## 11201
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(INCTOT ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 11.483 < 2.2e-16 ***
## 11154
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(INCTOT ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 11.172 < 2.2e-16 ***
## 11294
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(IPUMSPwt, YEAR == 2017)
b <- as.data.frame(DTK.test(x = a$INCTOT, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(IPUMSPwt, YEAR == 2018)
b <- as.data.frame(DTK.test(x = a$INCTOT, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(IPUMSPwt, YEAR == 2019)
b <- as.data.frame(DTK.test(x = a$INCTOT, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Rochester, MN |
+1* |
+1* |
+1* |
| Fargo, ND |
+2* |
+2* |
+2* |
| Grand Forks, ND |
+6 |
+6* |
+3* |
| Eau Claire, WI |
-9* |
-9* |
+4* |
| Duluth, MN |
-8* |
-7* |
+5* |
| La Crosse, WI |
+7 |
+3* |
+6* |
| Dubuque, IA |
+4* |
+4* |
+7* |
| Cedar Rapids, IA |
+3* |
+5* |
+8* |
| Mankato, MN |
+5 |
-8* |
-9* |
rm(a, b, City, t2017, t2018, t2019)
Average Family Size
leveneTest(FAMSIZE ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 1.9774 0.03781 *
## 5636
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(FAMSIZE ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 1.0151 0.425
## 5702
leveneTest(FAMSIZE ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 1.3527 0.2039
## 5869
b <- as.data.frame(TukeyHSD(aov(FAMSIZE ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2017)))$CITYNAME)
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'lwr' < 0 & b$'upr' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
b <- as.data.frame(TukeyHSD(aov(FAMSIZE ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2018)))$CITYNAME)
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'lwr' < 0 & b$'upr' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
b <- as.data.frame(TukeyHSD(aov(FAMSIZE ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2019)))$CITYNAME)
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'lwr' < 0 & b$'upr' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Rochester, MN |
+1 |
-2 |
-1 |
| Cedar Rapids, IA |
+4 |
-4 |
-2 |
| Dubuque, IA |
+2 |
-1 |
-3 |
| Eau Claire, WI |
-5 |
-6 |
-4 |
| Mankato, MN |
-7 |
-5 |
-5 |
| Grand Forks, ND |
-8* |
-8* |
-6* |
| Fargo, ND |
+3 |
-3 |
-7* |
| La Crosse, WI |
-6 |
-7 |
-8* |
| Duluth, MN |
-9* |
-9* |
-9* |
rm(b, City, t2017, t2018, t2019)
Average First Mortgage Payment
leveneTest(MORTAMT1 ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 4.9098 1.526e-06 ***
## 2181
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(MORTAMT1 ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 5.6341 9.809e-08 ***
## 2226
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(MORTAMT1 ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 4.9282 1.424e-06 ***
## 2177
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(IPUMSHHwt, YEAR == 2017)
b <- as.data.frame(DTK.test(x = a$MORTAMT1, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(IPUMSHHwt, YEAR == 2018)
b <- as.data.frame(DTK.test(x = a$MORTAMT1, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(IPUMSHHwt, YEAR == 2019)
b <- as.data.frame(DTK.test(x = a$MORTAMT1, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Rochester, MN |
+1* |
+1* |
+1* |
| Fargo, ND |
+2* |
+2* |
+2* |
| Grand Forks, ND |
-9* |
-5* |
-3* |
| Duluth, MN |
-6* |
-6* |
-4* |
| Cedar Rapids, IA |
-5* |
-4* |
-5* |
| La Crosse, WI |
+3* |
-7* |
-6* |
| Eau Claire, WI |
-7* |
-8* |
-7* |
| Mankato, MN |
+4 |
-3 |
-8* |
| Dubuque, IA |
-8* |
-9* |
-9* |
rm(a, b, City, t2017, t2018, t2019)
Average Gross Rent
leveneTest(RENTGRS ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 2.5949 0.005826 **
## 1021
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(RENTGRS ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 4.032 4.302e-05 ***
## 1065
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(RENTGRS ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 2.6123 0.005487 **
## 1082
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(IPUMSHHwt, YEAR == 2017)
b <- as.data.frame(DTK.test(x = a$RENTGRS, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(IPUMSHHwt, YEAR == 2018)
b <- as.data.frame(DTK.test(x = a$RENTGRS, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(IPUMSHHwt, YEAR == 2019)
b <- as.data.frame(DTK.test(x = a$RENTGRS, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Duluth, MN |
+3* |
+3* |
+1* |
| Rochester, MN |
+1* |
+1* |
+2* |
| Mankato, MN |
+2* |
+5* |
+3 |
| Fargo, ND |
+5* |
+7* |
+4* |
| Grand Forks, ND |
-9* |
+4* |
+5 |
| La Crosse, WI |
+4* |
+2* |
-6 |
| Eau Claire, WI |
-8 |
+6* |
-7* |
| Cedar Rapids, IA |
+7* |
-9* |
-8* |
| Dubuque, IA |
+6* |
-8* |
-9* |
rm(a, b, City, t2017, t2018, t2019)
Average Travel Time to Work
leveneTest(TRANTIME ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 6.1083 1.343e-08 ***
## 6647
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(TRANTIME ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 8.9086 1.825e-13 ***
## 6578
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(TRANTIME ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 5.4434 1.782e-07 ***
## 6585
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(IPUMSPwt, YEAR == 2017)
b <- as.data.frame(DTK.test(x = a$TRANTIME, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(IPUMSPwt, YEAR == 2018)
b <- as.data.frame(DTK.test(x = a$TRANTIME, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(IPUMSPwt, YEAR == 2019)
b <- as.data.frame(DTK.test(x = a$TRANTIME, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Cedar Rapids, IA |
-5* |
-6* |
-1* |
| Dubuque, IA |
-3* |
-1* |
-2* |
| Eau Claire, WI |
-4* |
-2* |
-3* |
| Rochester, MN |
-6* |
-3* |
-4* |
| Fargo, ND |
-8* |
-9* |
-5* |
| La Crosse, WI |
-7* |
-7* |
-6* |
| Mankato, MN |
-1* |
-4* |
-7* |
| Duluth, MN |
-2* |
-5* |
-8* |
| Grand Forks, ND |
-9* |
-8* |
-9* |
rm(a, b, City, t2017, t2018, t2019)
Average House Value
leveneTest(VALUEH ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 4.8027 2.149e-06 ***
## 3585
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(VALUEH ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 6.8138 9.036e-10 ***
## 3782
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(VALUEH ~ CITYNAME, weights = HHWT, data = filter(IPUMSHH, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: HHWT)
## Df F value Pr(>F)
## group 9 6.2354 8.682e-09 ***
## 3920
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(IPUMSHHwt, YEAR == 2017)
b <- as.data.frame(DTK.test(x = a$VALUEH, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(IPUMSHHwt, YEAR == 2018)
b <- as.data.frame(DTK.test(x = a$VALUEH, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(IPUMSHHwt, YEAR == 2019)
b <- as.data.frame(DTK.test(x = a$VALUEH, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Rochester, MN |
+1* |
+1* |
+1* |
| Fargo, ND |
+2* |
+2* |
+2* |
| Eau Claire, WI |
-5* |
-5* |
-3* |
| La Crosse, WI |
-3 |
-4* |
-4* |
| Duluth, MN |
-6* |
-3* |
-5* |
| Mankato, MN |
-4* |
-7* |
-6* |
| Cedar Rapids, IA |
-8* |
-9* |
-7* |
| Grand Forks, ND |
-9* |
-8* |
-8* |
| Dubuque, IA |
-7* |
-6* |
-9* |
rm(a, b, City, t2017, t2018, t2019)
Average Age
leveneTest(AGE ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 4.0349 3.543e-05 ***
## 13707
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(AGE ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 2.2017 0.01915 *
## 13513
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(AGE ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 3.966 4.561e-05 ***
## 13642
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(IPUMSPwt, YEAR == 2017)
b <- as.data.frame(DTK.test(x = a$AGE, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(IPUMSPwt, YEAR == 2018)
b <- as.data.frame(DTK.test(x = a$AGE, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(IPUMSPwt, YEAR == 2019)
b <- as.data.frame(DTK.test(x = a$AGE, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Dubuque, IA |
+1* |
+1* |
+1* |
| Rochester, MN |
+4* |
+5* |
+2* |
| Cedar Rapids, IA |
+5* |
+4* |
+3* |
| Duluth, MN |
+7* |
+2* |
+4* |
| Eau Claire, WI |
+2* |
+3* |
+5* |
| La Crosse, WI |
+3* |
+6* |
+6* |
| Grand Forks, ND |
+6* |
+7* |
+7* |
| Mankato, MN |
-8 |
-8 |
+8 |
| Fargo, ND |
-9* |
-9* |
-9* |
rm(a, b, City, t2017, t2018, t2019)
Average Usual Hours Per Week
leveneTest(UHRSWORK ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 2.8449 0.002397 **
## 7968
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(UHRSWORK ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 5.4021 2.067e-07 ***
## 7910
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(UHRSWORK ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 3.8803 6.304e-05 ***
## 7881
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(IPUMSPwt, YEAR == 2017)
b <- as.data.frame(DTK.test(x = a$UHRSWORK, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(IPUMSPwt, YEAR == 2018)
b <- as.data.frame(DTK.test(x = a$UHRSWORK, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(IPUMSPwt, YEAR == 2019)
b <- as.data.frame(DTK.test(x = a$UHRSWORK, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Fargo, ND |
+5* |
+1* |
+1 |
| Cedar Rapids, IA |
+2* |
-6* |
-2 |
| Rochester, MN |
+4* |
-3* |
-3 |
| Dubuque, IA |
+1* |
-5* |
-4* |
| Grand Forks, ND |
+3* |
+2 |
-5* |
| Eau Claire, WI |
-7* |
-4* |
-6* |
| La Crosse, WI |
+6* |
-7* |
-7* |
| Mankato, MN |
-8* |
-8* |
-8* |
| Duluth, MN |
-9* |
-9* |
-9* |
rm(a, b, City, t2017, t2018, t2019)
Proportion of Available-to-Work
leveneTest(AVAILABLE ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 0.4795 0.8889
## 721
leveneTest(AVAILABLE ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 0.3571 0.9548
## 788
leveneTest(AVAILABLE ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 0.2675 0.9831
## 763
b <- as.data.frame(TukeyHSD(aov(AVAILABLE ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2017)))$CITYNAME)
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'lwr' < 0 & b$'upr' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
b <- as.data.frame(TukeyHSD(aov(AVAILABLE ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2018)))$CITYNAME)
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'lwr' < 0 & b$'upr' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
b <- as.data.frame(TukeyHSD(aov(AVAILABLE ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2019)))$CITYNAME)
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'lwr' < 0 & b$'upr' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Cedar Rapids, IA |
+2 |
-6 |
+1 |
| La Crosse, WI |
-9 |
+4 |
-2 |
| Dubuque, IA |
-8 |
+3 |
-3 |
| Grand Forks, ND |
-7 |
+2 |
-4 |
| Fargo, ND |
+3 |
+5 |
-5 |
| Eau Claire, WI |
+4 |
+1 |
-6 |
| Mankato, MN |
+1 |
-8 |
-7 |
| Rochester, MN |
+5 |
-7 |
-8 |
| Duluth, MN |
-6 |
-9 |
-9 |
rm(b, City, t2017, t2018, t2019)
Proportion of Available-and-Looking-to-Work
leveneTest(AVAILLOOK ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 1.2256 0.2759
## 665
leveneTest(AVAILLOOK ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 0.3895 0.9404
## 716
leveneTest(AVAILLOOK ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 0.5986 0.7988
## 696
b <- as.data.frame(TukeyHSD(aov(AVAILLOOK ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2017)))$CITYNAME)
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'lwr' < 0 & b$'upr' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
b <- as.data.frame(TukeyHSD(aov(AVAILLOOK ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2018)))$CITYNAME)
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'lwr' < 0 & b$'upr' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
b <- as.data.frame(TukeyHSD(aov(AVAILLOOK ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2019)))$CITYNAME)
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'lwr' < 0 & b$'upr' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Cedar Rapids, IA |
+1 |
-4 |
-1 |
| Fargo, ND |
-4 |
-5 |
-2 |
| La Crosse, WI |
-6 |
-9 |
-3 |
| Dubuque, IA |
-7 |
-1 |
-4 |
| Grand Forks, ND |
-8 |
-2 |
-5 |
| Rochester, MN |
-2 |
-7 |
-6 |
| Eau Claire, WI |
-5 |
-3 |
-7 |
| Mankato, MN |
-9 |
-8 |
-8 |
| Duluth, MN |
-3 |
-6 |
-9 |
rm(b, City, t2017, t2018, t2019)
Proportion of Education Attainment Level
## Finished up to high school
leveneTest(HS ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 11.522 < 2.2e-16 ***
## 12904
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(HS ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 13.493 < 2.2e-16 ***
## 12689
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(HS ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 16.797 < 2.2e-16 ***
## 12835
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(IPUMSPwt, YEAR == 2017)
b <- as.data.frame(DTK.test(x = a$HS, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(IPUMSPwt, YEAR == 2018)
b <- as.data.frame(DTK.test(x = a$HS, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(IPUMSPwt, YEAR == 2019)
b <- as.data.frame(DTK.test(x = a$HS, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Dubuque, IA |
+1* |
+1* |
+1* |
| Eau Claire, WI |
+3* |
+2* |
+2* |
| La Crosse, WI |
+2* |
+3* |
-3* |
| Cedar Rapids, IA |
+4* |
+4 |
-4* |
| Mankato, MN |
+5* |
-6* |
-5* |
| Grand Forks, ND |
+6* |
-5 |
-6* |
| Fargo, ND |
+8 |
-8* |
-7* |
| Duluth, MN |
+7* |
-7* |
-8* |
| Rochester, MN |
-9* |
-9* |
-9* |
rm(a, b, City, t2017, t2018, t2019)
## Some college
leveneTest(COL ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 6.7724 9.294e-10 ***
## 12904
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(COL ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 5.6386 8.092e-08 ***
## 12689
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(COL ~ CITYNAME, weights = PERWT, data = filter(IPUMSP, YEAR == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median: PERWT)
## Df F value Pr(>F)
## group 9 6.4893 2.863e-09 ***
## 12835
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(IPUMSPwt, YEAR == 2017)
b <- as.data.frame(DTK.test(x = a$COL, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(IPUMSPwt, YEAR == 2018)
b <- as.data.frame(DTK.test(x = a$COL, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(IPUMSPwt, YEAR == 2019)
b <- as.data.frame(DTK.test(x = a$COL, f = a$CITYNAME, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 15, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
kable(left_join(t2019, t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019))
| Duluth, MN |
+1* |
+3* |
+1* |
| Rochester, MN |
+3* |
+1* |
+2* |
| Fargo, ND |
+2* |
+2* |
+3* |
| Grand Forks, ND |
+5 |
+6* |
+4* |
| Mankato, MN |
+4* |
+4* |
+5* |
| La Crosse, WI |
-6* |
+5* |
+6* |
| Cedar Rapids, IA |
-8* |
-7 |
+7* |
| Eau Claire, WI |
-7* |
-8* |
+8* |
| Dubuque, IA |
-9* |
-9* |
-9* |
rm(a, b, City, t2017, t2018, t2019)
Summarized Tables
## HHINCOME
IPUMS_HHINCOME <- IPUMSHH %>%
group_by(YEAR, CITYNAME) %>%
summarize(HHINCOME_AVG = weighted.mean(HHINCOME, HHWT, na.rm = FALSE))
## PINCOME
IPUMS_PINCOME <- IPUMSP %>%
group_by(YEAR, CITYNAME) %>%
summarize(PINCOME_AVG = weighted.mean(INCTOT, PERWT, na.rm = FALSE))
## FAMSIZE
IPUMS_FAMSIZE <- IPUMSHH %>%
group_by(YEAR, CITYNAME) %>%
summarize(FAMSIZE_AVG = weighted.mean(FAMSIZE, HHWT, na.rm = FALSE))
## MORTAMT1
IPUMS_MORTAMT1 <- IPUMSHH %>%
group_by(YEAR, CITYNAME) %>%
summarize(MORTAMT1_AVG = weighted.mean(MORTAMT1, HHWT, na.rm = FALSE))
## RENTGRS
IPUMS_RENTGRS <- IPUMSHH %>%
group_by(YEAR, CITYNAME) %>%
summarize(RENTGRS_AVG = weighted.mean(RENTGRS, HHWT, na.rm = FALSE))
## TRANTIME
IPUMS_TRANTIME <- IPUMSP%>%
group_by(YEAR, CITYNAME) %>%
summarize(TRANTIME_AVG = weighted.mean(TRANTIME, PERWT, na.rm = FALSE))
## VALUEH
IPUMS_VALUEH <- IPUMSHH %>%
group_by(YEAR, CITYNAME) %>%
summarize(VALUEH_AVG = weighted.mean(VALUEH, HHWT, na.rm = FALSE))
## AGE
IPUMS_AGE <- IPUMSP %>%
group_by(YEAR, CITYNAME) %>%
summarize(AGE_AVG = weighted.mean(AGE, PERWT, na.rm = FALSE))
## UHRSWORK
IPUMS_UHRSWORK <- IPUMSP %>%
group_by(YEAR, CITYNAME) %>%
summarize(UHRSWORK_AVG = weighted.mean(UHRSWORK, PERWT, na.rm = FALSE))
## AVAILABLE
IPUMS_AVAILABLE <- IPUMSP %>%
group_by(YEAR, CITYNAME, AVAILBLE) %>%
summarize(n = n(), WT = sum(PERWT)) %>%
mutate(wtN = n * WT)
IPUMS_AVAILABLE2 <- IPUMS_AVAILABLE %>%
ungroup() %>%
group_by(YEAR, CITYNAME) %>%
summarize(total = sum(wtN))
IPUMS_AVAILABLE <- left_join(IPUMS_AVAILABLE, IPUMS_AVAILABLE2, by = c("YEAR", "CITYNAME")) %>%
filter(AVAILBLE == 4) %>%
mutate(Prop_AVAIL = wtN/total) %>%
ungroup() %>%
select(YEAR, CITYNAME, Prop_AVAIL)
rm(IPUMS_AVAILABLE2)
## AVAILLOOK
IPUMS_AVAILLOOK <- IPUMSP %>%
group_by(YEAR, CITYNAME, AVAILBLE, LOOKING) %>%
summarize(n = n(), WT = sum(PERWT)) %>%
mutate(wtN = n * WT)
IPUMS_AVAILLOOK2 <- IPUMS_AVAILLOOK %>%
ungroup() %>%
group_by(YEAR, CITYNAME) %>%
summarize(total = sum(wtN))
IPUMS_AVAILLOOK <- left_join(IPUMS_AVAILLOOK, IPUMS_AVAILLOOK2, by = c("YEAR", "CITYNAME")) %>%
filter(AVAILBLE == 4, LOOKING == 2) %>%
mutate(Prop_AVAILnLOOK = wtN/total) %>%
ungroup() %>%
select(YEAR, CITYNAME, Prop_AVAILnLOOK)
rm(IPUMS_AVAILLOOK2)
## EDUC
IPUMS_EDUC <- IPUMSP %>%
group_by(YEAR, CITYNAME, EDUC2) %>%
summarize(n = n(), WT = sum(PERWT)) %>%
mutate(wtN = n * WT)
IPUMS_EDUC2 <- IPUMS_EDUC %>%
ungroup() %>%
group_by(YEAR, CITYNAME) %>%
summarize(total = sum(wtN))
IPUMS_EDUC <- left_join(IPUMS_EDUC, IPUMS_EDUC2, by = c("YEAR", "CITYNAME")) %>%
mutate(Prop = wtN/total) %>%
ungroup() %>%
select(YEAR, CITYNAME, EDUC2, Prop)
rm(IPUMS_EDUC2)
IPUMS_HS <- IPUMS_EDUC %>%
filter(EDUC2 == "HS")
IPUMS_COL <- IPUMS_EDUC %>%
filter(EDUC2 == "Some College")
LAUS
Labor Force
leveneTest(Civilian.Labor.Force ~ Area, data = filter(LAUS, Year == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 5.2284 6.504e-06 ***
## 110
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(Civilian.Labor.Force ~ Area, data = filter(LAUS, Year == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 4.8964 1.607e-05 ***
## 110
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(Civilian.Labor.Force ~ Area, data = filter(LAUS, Year == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 6.4682 2.399e-07 ***
## 110
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(Civilian.Labor.Force ~ Area, data = filter(LAUS, Year == 2020))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 5.5799 2.519e-06 ***
## 110
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a <- filter(LAUS, Year == 2017)
b <- as.data.frame(DTK.test(x = a$Civilian.Labor.Force, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(LAUS, Year == 2018)
b <- as.data.frame(DTK.test(x = a$Civilian.Labor.Force, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(LAUS, Year == 2019)
b <- as.data.frame(DTK.test(x = a$Civilian.Labor.Force, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
a <- filter(LAUS, Year == 2020)
b <- as.data.frame(DTK.test(x = a$Civilian.Labor.Force, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2020 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2020 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2020)
kable(left_join(t2020, t2019, by = "City") %>%
left_join(t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019, Rank2020))
| Cedar Rapids, IA MSA |
+2* |
+1* |
+1* |
+1* |
| Duluth, MN-WI MSA |
+1* |
+2* |
+2* |
+2* |
| Fargo, ND-MN MSA |
+3* |
+3* |
+3* |
+3* |
| Rochester, MN MSA |
+4* |
+4* |
+4* |
+4* |
| Eau Claire, WI MSA |
-5* |
-5* |
-5* |
-5* |
| La Crosse-Onalaska, WI-MN MSA |
-6* |
-6* |
-6* |
-6* |
| Mankato-North Mankato, MN MSA |
-7* |
-7* |
-7* |
-7* |
| Dubuque, IA MSA |
-9* |
-8* |
-8* |
-8* |
| Grand Forks, ND-MN MSA |
-8* |
-9* |
-9* |
-9* |
rm(a, b, City, t2017, t2018, t2019, t2020)
Employment
leveneTest(Employment ~ Area, data = filter(LAUS, Year == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 4.4094 6.138e-05 ***
## 110
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(Employment ~ Area, data = filter(LAUS, Year == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 5.4792 3.302e-06 ***
## 110
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(Employment ~ Area, data = filter(LAUS, Year == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 6.36 3.183e-07 ***
## 110
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(Employment ~ Area, data = filter(LAUS, Year == 2020))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 1.404 0.1951
## 110
a <- filter(LAUS, Year == 2017)
b <- as.data.frame(DTK.test(x = a$Employment, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(LAUS, Year == 2018)
b <- as.data.frame(DTK.test(x = a$Employment, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(LAUS, Year == 2019)
b <- as.data.frame(DTK.test(x = a$Employment, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
a <- filter(LAUS, Year == 2020)
b <- as.data.frame(DTK.test(x = a$Employment, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2020 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2020 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2020)
kable(left_join(t2020, t2019, by = "City") %>%
left_join(t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019, Rank2020))
| Fargo, ND-MN MSA |
+3* |
+3* |
+3* |
+1* |
| Cedar Rapids, IA MSA |
+2* |
+1* |
+1* |
+2* |
| Duluth, MN-WI MSA |
+1* |
+2* |
+2* |
+3* |
| Rochester, MN MSA |
+4* |
+4* |
+4* |
+4* |
| Eau Claire, WI MSA |
-5* |
-5* |
-5* |
-5* |
| La Crosse-Onalaska, WI-MN MSA |
-6* |
-6* |
-6* |
-6* |
| Mankato-North Mankato, MN MSA |
-7* |
-7* |
-7* |
-7* |
| Grand Forks, ND-MN MSA |
-8* |
-9* |
-9* |
-8* |
| Dubuque, IA MSA |
-9* |
-8* |
-8* |
-9* |
rm(a, b, City, t2017, t2018, t2019, t2020)
Unemployment Rate
leveneTest(Unemployment.Rate ~ Area, data = filter(LAUS, Year == 2017))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 4.5951 3.676e-05 ***
## 110
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(Unemployment.Rate ~ Area, data = filter(LAUS, Year == 2018))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 3.3204 0.00127 **
## 110
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(Unemployment.Rate ~ Area, data = filter(LAUS, Year == 2019))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 3.7766 0.000356 ***
## 110
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
leveneTest(Unemployment.Rate ~ Area, data = filter(LAUS, Year == 2020))
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 9 0.7897 0.6263
## 110
a <- filter(LAUS, Year == 2017)
b <- as.data.frame(DTK.test(x = a$Unemployment.Rate, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2017 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2017 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2017)
a <- filter(LAUS, Year == 2018)
b <- as.data.frame(DTK.test(x = a$Unemployment.Rate, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2018 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2018 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2018)
a <- filter(LAUS, Year == 2019)
b <- as.data.frame(DTK.test(x = a$Unemployment.Rate, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2019 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2019 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2019)
a <- filter(LAUS, Year == 2020)
b <- as.data.frame(DTK.test(x = a$Unemployment.Rate, f = a$Area, a = 0.05)[[2]])
City <- rownames(b)
t2020 <- b %>%
mutate(Reject = ifelse((b$'Lower CI' < 0 & b$'Upper CI' > 0), FALSE, TRUE)) %>%
cbind(City) %>%
filter(str_detect(rownames(b), "St. Cloud, MN")) %>%
arrange(Diff) %>%
mutate(
City = substr(City, 19, str_length(City)),
Rank2020 = case_when(
(Reject == TRUE & Diff > 0) ~ paste0("-", as.character(row_number()), "*"),
(Reject == FALSE & Diff > 0) ~ paste0("-", as.character(row_number())),
(Reject == TRUE & Diff <= 0) ~ paste0("+", as.character(row_number()), "*"),
(Reject == FALSE & Diff <= 0) ~ paste0("+", as.character(row_number()))
)
) %>%
select(City, Rank2020)
kable(left_join(t2020, t2019, by = "City") %>%
left_join(t2018, by = "City") %>%
left_join(t2017, by = "City") %>%
select(City, Rank2017, Rank2018, Rank2019, Rank2020))
| Duluth, MN-WI MSA |
+1* |
+1* |
+1* |
+1 |
| Cedar Rapids, IA MSA |
-2 |
-2* |
-4* |
+2 |
| Eau Claire, WI MSA |
-3* |
-3* |
+2 |
+3 |
| Dubuque, IA MSA |
-4* |
-7* |
-8* |
+4 |
| La Crosse-Onalaska, WI-MN MSA |
-5* |
-5* |
-3* |
-5 |
| Rochester, MN MSA |
-6* |
-6* |
-5* |
-6 |
| Mankato-North Mankato, MN MSA |
-8* |
-8* |
-7* |
-7 |
| Grand Forks, ND-MN MSA |
-7* |
-4* |
-6* |
-8 |
| Fargo, ND-MN MSA |
-9* |
-9* |
-9* |
-9 |
rm(a, b, City, t2017, t2018, t2019, t2020)
Summarized Tables
MeanFunction <- function(dataset, x, y, z) {
dataset %>%
group_by_(x, y) %>%
summarize_(Mean = paste0("mean(", z, ", na.rm = TRUE)")) #note underscore after summarize
}
LAUS_LF <- MeanFunction(LAUS, "Year", "Area", 'Civilian.Labor.Force')
LAUS_EMP <- MeanFunction(LAUS, "Year", "Area", 'Employment')
LAUS_UM <- MeanFunction(LAUS, "Year", "Area", 'Unemployment.Rate')
write.csv(LAUS_LF, "LAUS_LF.csv")
write.csv(LAUS_EMP, "LAUS_EMP.csv")
write.csv(LAUS_UM, "LAUS_UM.csv")