Loading data


data1 <- read_csv("data/200820092010.csv", col_names=F, locale = locale(encoding = "ISO-8859-1"))
Rows: 25410 Columns: 8── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (5): X1, X2, X3, X4, X5
dbl (3): X6, X7, X8
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(data1) <- c('useless1', 'useless2', 'useless3', 'province', 'origin', 'd2008', 'd2009', 'd2010')
#guess_encoding("data/200820092010.csv")
#guess_encoding("data/menage.csv")
#guess_encoding("data/incomedk.xlsx")
#guess_encoding("data/CRIMERAW.csv")

data2 <- read_csv("data/201120122013.csv", col_names=F, locale = locale(encoding = "ISO-8859-1"))
Rows: 25410 Columns: 8── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (5): X1, X2, X3, X4, X5
dbl (3): X6, X7, X8
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(data2) <- c('useless11', 'useless21', 'useless31', 'province', 'origin', 'd2011', 'd2012', 'd2013')
data3 <- read_csv("data/201420152016.csv", col_names=F, locale = locale(encoding = "ISO-8859-1"))
Rows: 25410 Columns: 8── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (5): X1, X2, X3, X4, X5
dbl (3): X6, X7, X8
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(data3) <- c('useless12', 'useless22', 'useless32', 'province', 'origin', 'd2014', 'd2015', 'd2016')
data4 <- read_csv("data/201720182019.csv", col_names=F, locale = locale(encoding = "ISO-8859-1"))
Rows: 25410 Columns: 8── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (5): X1, X2, X3, X4, X5
dbl (3): X6, X7, X8
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(data4) <- c('useless13', 'useless23', 'useless33', 'province', 'origin', 'd2017', 'd2018', 'd2019')
data5 <- read_csv("data/202020212022.csv", col_names=F, locale = locale(encoding = "ISO-8859-1"))
Rows: 25410 Columns: 8── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (5): X1, X2, X3, X4, X5
dbl (3): X6, X7, X8
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(data5) <- c('useless14', 'useless24', 'useless34', 'province', 'origin', 'd2020', 'd2021', 'd2022')
data6 <- read_csv("data/202320242025.csv", col_names=F, locale = locale(encoding = "ISO-8859-1"))
Rows: 25410 Columns: 8── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (5): X1, X2, X3, X4, X5
dbl (3): X6, X7, X8
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(data6) <- c('useless15', 'useless25', 'useless35', 'province', 'origin', 'd2023', 'd2024', 'd2025')
data7 <- read_csv("data/CRIMERAW.csv", col_names=F, locale = locale(encoding = "ISO-8859-1"))
Rows: 106 Columns: 19── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr  (2): X1, X2
dbl (17): X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(data7) <- c('useless151', 'province', 'c2008', 'c2009', 'c2010', 'c2011', 'c2012', 'c2013', 'c2014', 'c2015', 'c2016', 'c2017', 'c2018', 'c2019', 'c2020', 'c2021', 'c2022', 'c2023', 'c2024')
data8 <- read_delim("data/menage.csv", col_names=F, delim=';', locale = locale(encoding = "ISO-8859-1"))
Rows: 2080 Columns: 21── Column specification ────────────────────────────────────────────────────────
Delimiter: ";"
chr  (4): X1, X2, X3, X4
dbl (17): X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(data8) <- c('useless151', 'age', 'sex', 'province', 't2008', 't2009', 't2010', 't2011', 't2012', 't2013', 't2014', 't2015', 't2016', 't2017', 't2018', 't2019', 't2020', 't2021', 't2022', 't2023', 't2024')

incomedk <- read_xlsx('data/incomedk.xlsx')
incomedk <- incomedk[2:110, ]
colnames(incomedk) <- c('province', 'i2000', 'i2001', 'i2002', 'i2003', 'i2004', 'i2005', 'i2006', 'i2007', 'i2008', 'i2009', 'i2010', 'i2011', 'i2012', 'i2013', 'i2014', 'i2015', 'i2016', 'i2017', 'i2018', 'i2019', 'i2020', 'i2021', 'i2022', 'i2023')
incomedk <- incomedk %>% filter(!province=='All Denmark' | !province=='Bornholm')

areadk <- read_excel("data/areadk.xlsx")
New names:
areadk$province <- areadk$...1
areadk[, 2:20] <- lapply(areadk[, 2:20], as.numeric)
Warning: NAs introduced by coercionWarning: NAs introduced by coercionWarning: NAs introduced by coercionWarning: NAs introduced by coercion
areadk[areadk$province == "Christiansø", 2:20] <- 0.4
#head(areadk)

Calculating sex ratios and average ages.

#head(data8)

data8 <- data8 %>%
  mutate(age_mid = case_when(
    str_detect(age, "0-9") ~ 4.5,
    str_detect(age, "10-19") ~ 14.5,
    str_detect(age, "20-29") ~ 24.5,
    str_detect(age, "30-39") ~ 34.5,
    str_detect(age, "40-49") ~ 44.5,
    str_detect(age, "50-59") ~ 54.5,
    str_detect(age, "60-69") ~ 64.5,
    str_detect(age, "70-79") ~ 74.5,
    str_detect(age, "80-89") ~ 84.5,
    str_detect(age, "90+") ~ 95,
    TRUE ~ NA_real_
  ))

#unique(data8$province)

data_long <- data8 %>%
  pivot_longer(cols = starts_with("t"),
               names_to = "year",
               names_prefix = "t",
               values_to = "population")
#unique(data_long$province)



avg_age_by_province_year <- data_long %>%
  filter(!is.na(age_mid) & sex=='Total') %>%
  group_by(province, year) %>%
  summarise(
    avg_age = weighted.mean(age_mid, population, na.rm = TRUE),
    .groups = "drop"
  )
#unique(avg_age_by_province_year$province)

pop_by_sex <- data_long %>%
  filter(sex %in% c("Total", "Men")) %>%
  group_by(province, year, sex) %>%
  summarise(total_pop = sum(population, na.rm = TRUE), .groups = "drop")
#unique(pop_by_sex$province)

pop_wide <- pop_by_sex %>%
  pivot_wider(names_from = sex, values_from = total_pop)

pop_wide <- pop_wide %>%
  mutate(percent_male = (Men / Total) * 100)

long_area <- areadk %>%
  mutate(across(`2007`:`2025`, as.numeric)) %>%   # convert all years to numeric
  pivot_longer(
    cols = `2007`:`2025`,
    names_to = "year",
    values_to = "area"
  ) %>%
  mutate(year = as.character(year))

popdens <- full_join(long_area, pop_wide, by=c('year', 'province'))

popdens$density <- popdens$Total/popdens$area

popdens_wide <- popdens %>%
  pivot_wider(
    id_cols = province,     
    names_from = year,           
    values_from = density,      
    names_glue = "dens{year}"    
  )

sexratio <- pop_wide %>% select(province, year, percent_male)

Fusing different datasets and creating variables


setequal(unique(data1$province), unique(data2$province))
[1] TRUE
setequal(unique(data1$province), unique(data2$province))
[1] TRUE
demdata <- left_join(data1, data2, by = c("province", "origin"))

setequal(unique(demdata$province), unique(data3$province))
[1] TRUE
demdata <- left_join(demdata, data3, by = c("province", "origin"))

setequal(unique(demdata$province), unique(data4$province))
[1] TRUE
demdata <- left_join(demdata, data4, by = c("province", "origin"))

setequal(unique(demdata$province), unique(data5$province))
[1] TRUE
demdata <- left_join(demdata, data5, by = c("province", "origin"))

setequal(unique(demdata$province), unique(data6$province))
[1] TRUE
demdata <- left_join(demdata, data6, by = c("province", "origin"))
demdata <- demdata %>% select('province', 'origin', 'd2008', 'd2009', 'd2010', 'd2011', 'd2012', 'd2013', 'd2014', 'd2015', 'd2016', 'd2017', 'd2018', 'd2019', 'd2020', 'd2021', 'd2022', 'd2023', 'd2024')

##########
data7 <- data7 %>% filter(!province=='Not stated municipality')
demtotals <- demdata %>% filter(origin=='Total') %>% select('province', 'd2008', 'd2009', 'd2010', 'd2011', 'd2012', 'd2013', 'd2014', 'd2015', 'd2016', 'd2017', 'd2018', 'd2019', 'd2020', 'd2021', 'd2022', 'd2023', 'd2024')

setequal(unique(demtotals$province), unique(data7$province))
[1] TRUE
setdiff(unique(demtotals$province), unique(data7$province))  
character(0)
setdiff(unique(data7$province), unique(demtotals$province))  
character(0)
crimedata <- left_join(data7, demtotals, by = c("province"))
crimedata <- crimedata %>% filter(!province=='All Denmark')

years <- 2008:2024

for (year in years) {
  c_col <- paste0("c", year)
  d_col <- paste0("d", year)
  rate_col <- paste0("crime_rate", year)
  
  crimedata[[rate_col]] <- crimedata[[c_col]] / crimedata[[d_col]]*1000
}

Recoding country names and removing rows labelled ‘All Denmark’ (which is not an actual province).

demdata2 <- demdata %>% filter(!origin=='Total') %>% filter(!province=='All Denmark')
demdata2$origin_alpha3 <- countrycode(demdata2$origin, origin = 'country.name', destination='iso3c')
Warning: Some values were not matched unambiguously: Abu Dhabi, Africa not stated, Asia not stated, British West Indies, Czechoslovakia, Dubai, East Jerusalem, Eswantini, Europe not stated, French territories in the Pacific, French West Indies, GDR, Kosovo, Middle East not stated, Netherlands Antilles, North America not stated, North Yemen, Northern Ireland, Not stated, Pacific Islands, Serbia and Montenegro, Sikkim, South and central America not stated, Southwest Africa, Spanish territories in Africa, Stateless, West Indies, Yugoslavia, Yugoslavia, Federal Republic
demdata2$origin_alpha3[demdata2$origin=='Czechoslovakia'] <- 'CZE'
demdata2$origin_alpha3[demdata2$origin=='Dubai'] <- 'UAE'
demdata2$origin_alpha3[demdata2$origin=='Eswantini'] <- 'SWZ'
demdata2$origin_alpha3[demdata2$origin=='Kosovo'] <- 'KSV'
demdata2$origin_alpha3[demdata2$origin=='Netherlands Antilles'] <- 'ANT'
demdata2$origin_alpha3[demdata2$origin=='North Yemen'] <- 'YEM'
demdata2$origin_alpha3[demdata2$origin=='Northern Ireland'] <- 'GBR'
demdata2$stock <- 'Foreign'
demdata2$stock[demdata2$origin=='Denmark'] <- 'Danish'

demdata3 <- demdata2 %>% filter(!province=='All Denmark')

Checking coding for origin/stock

test <- demdata3 %>% select('origin', 'stock') %>% unique()
#test

Calculating stock by province


ddgroup <- demdata3 %>% group_by(stock, province) %>% summarise(d2008=sum(d2008), d2009=sum(d2009), d2010=sum(d2010), d2011=sum(d2011), d2012=sum(d2012), d2013=sum(d2013), d2014=sum(d2014), d2015=sum(d2015), d2016=sum(d2016), d2017=sum(d2017), d2018=sum(d2018), d2019=sum(d2019), d2020=sum(d2020), d2021=sum(d2021), d2022=sum(d2022), d2023=sum(d2023), d2024=sum(d2024))
`summarise()` has grouped output by 'stock'. You can override using the `.groups` argument.
#ddgroup

Calculating percentages for demographic groups

years <- 2008:2024
d_cols <- paste0("d", years)
pct_cols <- paste0("pct", years)

demdata_pct <- ddgroup %>%
  group_by(province) %>%
  mutate(across(all_of(d_cols), 
                .fns = list, 
                .names = "temp_{.col}")) %>%  
  mutate(across(all_of(d_cols), 
                ~ . / sum(., na.rm = TRUE) * 100, 
                .names = "pct{.col}")) %>%
  ungroup()

demdata_pct <- demdata_pct %>%
  select(-starts_with("temp_"))
#head(demdata_pct)
############
demdata_wide <- demdata_pct %>%
  pivot_longer(
    cols = matches("^d\\d{4}$|^pctd\\d{4}$"),
    names_to = c("type", "year"),
    names_pattern = "^(pct)?d(\\d{4})$"
  ) %>%
  mutate(
    type = ifelse(type == "", "count", "pct"),
    year = as.integer(year)
  ) %>%
  unite("varname", stock, type, year, sep = "_") %>%
  pivot_wider(
    names_from = varname,
    values_from = value
  )

Converting to wide format

age_wide <- avg_age_by_province_year %>%
  pivot_wider(
    names_from = year,
    values_from = avg_age,
    names_prefix = "a"
  )

sex_wide <- sexratio %>%
  pivot_wider(
    names_from = year,
    values_from = percent_male,
    names_prefix = "m"
  )

Fusing various types of data

setequal(unique(crimedata$province), unique(demdata_wide$province))
[1] TRUE
crosssec <- full_join(crimedata, demdata_wide, by = c("province"))

setequal(unique(crosssec$province), unique(age_wide$province))
[1] TRUE
crosssec <- full_join(crosssec, age_wide, by = c("province"))

setequal(unique(crosssec$province), unique(sex_wide$province))
[1] TRUE
crosssec <- full_join(crosssec, sex_wide, by = c("province"))

setequal(unique(crosssec$province), unique(popdens$province))
[1] TRUE
crosssec <- full_join(crosssec, popdens_wide, by = c("province"))

Logging density

crosssec <- full_join(crosssec, incomedk, by = c("province"))

crosssec <- crosssec %>%
  mutate(across(starts_with("dens"), log))

Sanity check

lr <- lm(data=crosssec, crime_rate2008 ~ `Foreign_pct_2008` + a2008 + i2008 + m2008 + dens2008)
summary(lr)

Call:
lm(formula = crime_rate2008 ~ Foreign_pct_2008 + a2008 + i2008 + 
    m2008 + dens2008, data = crosssec)

Residuals:
    Min      1Q  Median      3Q     Max 
-10.251  -2.508  -0.291   2.232  11.742 

Coefficients:
                   Estimate Std. Error t value Pr(>|t|)    
(Intercept)      50.3288744 54.4550052    0.92  0.35779    
Foreign_pct_2008  0.5468589  0.1422263    3.84  0.00022 ***
a2008            -0.9889064  0.2677577   -3.69  0.00038 ***
i2008            -0.0000294  0.0000094   -3.13  0.00238 ** 
m2008             0.1381042  0.9157310    0.15  0.88045    
dens2008          1.1941775  0.7287009    1.64  0.10468    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.16 on 92 degrees of freedom
  (17 observations deleted due to missingness)
Multiple R-squared:  0.598, Adjusted R-squared:  0.577 
F-statistic: 27.4 on 5 and 92 DF,  p-value: <0.0000000000000002

Long format + conversions

crosssec_long <- crosssec %>%
  pivot_longer(
    cols = matches("^(i|m|a|crime_rate|Danish_pct|Foreign_pct|dens)_?\\d{4}$"),
    names_to = c(".value", "year"),
    names_pattern = "^(i|m|a|crime_rate|Danish_pct|Foreign_pct|dens)_?(\\d{4})$"
  ) %>%
  mutate(
    year = as.integer(year)
  ) %>%
  arrange(province, year) %>% select(province, year, i, m, a, crime_rate, Danish_pct, Foreign_pct, dens) %>% filter(year > 2007 & year < 2024)


crosssec$i_diff_2023_2008         <- crosssec$i2023 - crosssec$i2008
crosssec$m_diff_2023_2008         <- crosssec$m2023 - crosssec$m2008
crosssec$a_diff_2023_2008         <- crosssec$a2023 - crosssec$a2008
crosssec$crime_rate_diff_2023_2008 <- crosssec$crime_rate2023 - crosssec$crime_rate2008
crosssec$Danish_pct_diff_2023_2008 <- crosssec$Danish_pct_2023 - crosssec$Danish_pct_2008
crosssec$Foreign_pct_diff_2023_2008 <- crosssec$Foreign_pct_2023 - crosssec$Foreign_pct_2008
crosssec$dens_diff_2023_2008       <- crosssec$dens2023 - crosssec$dens2008

All regressions + tests

########################DID
lr <- lm(data=crosssec, crime_rate_diff_2023_2008 ~ Foreign_pct_diff_2023_2008 + dens_diff_2023_2008 + a_diff_2023_2008 + i_diff_2023_2008 + m_diff_2023_2008)
summary(lr)

Call:
lm(formula = crime_rate_diff_2023_2008 ~ Foreign_pct_diff_2023_2008 + 
    dens_diff_2023_2008 + a_diff_2023_2008 + i_diff_2023_2008 + 
    m_diff_2023_2008, data = crosssec)

Residuals:
    Min      1Q  Median      3Q     Max 
-13.784  -2.169  -0.161   1.509  11.935 

Coefficients:
                              Estimate  Std. Error t value Pr(>|t|)  
(Intercept)                -4.70228958  2.48875847   -1.89    0.062 .
Foreign_pct_diff_2023_2008 -0.26794051  0.17619221   -1.52    0.132  
dens_diff_2023_2008        -5.97901679  6.78906771   -0.88    0.381  
a_diff_2023_2008           -0.09057873  0.45581807   -0.20    0.843  
i_diff_2023_2008            0.00000973  0.00000622    1.56    0.121  
m_diff_2023_2008            1.04624377  1.15432287    0.91    0.367  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.98 on 92 degrees of freedom
  (17 observations deleted due to missingness)
Multiple R-squared:  0.0804,    Adjusted R-squared:  0.0304 
F-statistic: 1.61 on 5 and 92 DF,  p-value: 0.166
regression_std_df <- lm_to_std_df(lr)
write.csv(regression_std_df, 'regs/fulldiff.csv')
##########
##########


############Province effects

lr2 <- plm(crime_rate ~ i + m + a + Foreign_pct + dens, 
    data = crosssec_long, 
    index = c("province", "year"), 
    model = "within")

summary(lr2)
Oneway (individual) effect Within Model

Call:
plm(formula = crime_rate ~ i + m + a + Foreign_pct + dens, data = crosssec_long, 
    model = "within", index = c("province", "year"))

Balanced Panel: n = 98, T = 16, N = 1568

Residuals:
   Min. 1st Qu.  Median 3rd Qu.    Max. 
 -17.61   -1.53   -0.25    1.26   48.31 

Coefficients:
                Estimate   Std. Error t-value     Pr(>|t|)    
i            -0.00000214   0.00000340   -0.63       0.5300    
m            -1.09324219   0.58917851   -1.86       0.0637 .  
a            -1.02607866   0.17135458   -5.99 0.0000000027 ***
Foreign_pct  -0.27135753   0.09523211   -2.85       0.0044 ** 
dens        -22.81127769   4.15703690   -5.49 0.0000000480 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Total Sum of Squares:    26300
Residual Sum of Squares: 20000
R-Squared:      0.239
Adj. R-Squared: 0.186
F-statistic: 91.9181 on 5 and 1465 DF, p-value: <0.0000000000000002
regression_std_df <- plm_to_std_df(lr2)
write.csv(regression_std_df, 'regs/proveffects.csv')
############Year effects (factor)

lr3 <- plm(crime_rate ~ i + m + a + Foreign_pct + factor(year) + dens, 
           data = crosssec_long, 
           index = c("province", "year"), 
           model = "within")

summary(lr3)
Oneway (individual) effect Within Model

Call:
plm(formula = crime_rate ~ i + m + a + Foreign_pct + factor(year) + 
    dens, data = crosssec_long, model = "within", index = c("province", 
    "year"))

Balanced Panel: n = 98, T = 16, N = 1568

Residuals:
   Min. 1st Qu.  Median 3rd Qu.    Max. 
 -17.67   -1.45   -0.24    1.13   47.99 

Coefficients:
                     Estimate   Std. Error t-value      Pr(>|t|)    
i                  0.00001248   0.00000408    3.06       0.00224 ** 
m                 -0.51765140   0.59297359   -0.87       0.38282    
a                  0.08847085   0.26590404    0.33       0.73940    
Foreign_pct        0.02372272   0.12402690    0.19       0.84834    
factor(year)2009   0.62450128   0.51598604    1.21       0.22636    
factor(year)2010  -0.98019085   0.54801073   -1.79       0.07388 .  
factor(year)2011  -0.94615637   0.58082911   -1.63       0.10354    
factor(year)2012  -0.93966870   0.62517099   -1.50       0.13304    
factor(year)2013  -3.23132298   0.68541686   -4.71 0.00000265740 ***
factor(year)2014  -2.39523874   0.75281159   -3.18       0.00150 ** 
factor(year)2015  -4.05912422   0.84191609   -4.82 0.00000157631 ***
factor(year)2016  -4.29171903   0.94497437   -4.54 0.00000604476 ***
factor(year)2017  -4.41675513   1.05125020   -4.20 0.00002814157 ***
factor(year)2018  -4.43831176   1.13944143   -3.90       0.00010 ***
factor(year)2019  -4.43150461   1.22699865   -3.61       0.00031 ***
factor(year)2020  -5.14242313   1.31430578   -3.91 0.00009551448 ***
factor(year)2021  -9.06278101   1.41277955   -6.41 0.00000000019 ***
factor(year)2022  -7.55987113   1.47567298   -5.12 0.00000034116 ***
factor(year)2023  -6.73376899   1.61596531   -4.17 0.00003268344 ***
dens             -15.12907609   4.32099808   -3.50       0.00048 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Total Sum of Squares:    26300
Residual Sum of Squares: 18400
R-Squared:      0.3
Adj. R-Squared: 0.243
F-statistic: 31.0466 on 20 and 1450 DF, p-value: <0.0000000000000002
regression_std_df <- plm_to_std_df(lr3)
regression_std_df
write.csv(regression_std_df, 'regs/provyeareffects.csv')
robust_results <- lmtest::coeftest(lr3, 
                           vcov = vcovHC(lr3, 
                                         type = "sss", 
                                         cluster = "group"))
print(robust_results)

t test of coefficients:

                     Estimate   Std. Error t value  Pr(>|t|)    
i                  0.00001248   0.00000564    2.21   0.02714 *  
m                 -0.51765140   0.87190601   -0.59   0.55280    
a                  0.08847085   0.38111174    0.23   0.81646    
Foreign_pct        0.02372272   0.18000052    0.13   0.89517    
factor(year)2009   0.62450128   0.28552070    2.19   0.02888 *  
factor(year)2010  -0.98019085   0.41213509   -2.38   0.01752 *  
factor(year)2011  -0.94615637   0.47045961   -2.01   0.04450 *  
factor(year)2012  -0.93966870   0.57905539   -1.62   0.10486    
factor(year)2013  -3.23132298   0.71922295   -4.49 0.0000076 ***
factor(year)2014  -2.39523874   0.96508543   -2.48   0.01318 *  
factor(year)2015  -4.05912422   1.04866457   -3.87   0.00011 ***
factor(year)2016  -4.29171903   1.20763229   -3.55   0.00039 ***
factor(year)2017  -4.41675513   1.30729530   -3.38   0.00075 ***
factor(year)2018  -4.43831176   1.42890149   -3.11   0.00193 ** 
factor(year)2019  -4.43150461   1.50215678   -2.95   0.00323 ** 
factor(year)2020  -5.14242313   1.69645737   -3.03   0.00248 ** 
factor(year)2021  -9.06278101   1.89577945   -4.78 0.0000019 ***
factor(year)2022  -7.55987113   1.96702140   -3.84   0.00013 ***
factor(year)2023  -6.73376899   2.11933567   -3.18   0.00152 ** 
dens             -15.12907609   4.92912387   -3.07   0.00219 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
dk_results <- lmtest::coeftest(lr3, vcov = vcovSCC(lr3))

print(dk_results) 

t test of coefficients:

                    Estimate  Std. Error t value             Pr(>|t|)    
i                  0.0000125   0.0000047    2.65              0.00806 ** 
m                 -0.5176514   0.3822774   -1.35              0.17591    
a                  0.0884709   0.3180494    0.28              0.78092    
Foreign_pct        0.0237227   0.1265714    0.19              0.85135    
factor(year)2009   0.6245013   0.0860024    7.26    0.000000000000623 ***
factor(year)2010  -0.9801908   0.1292252   -7.59    0.000000000000059 ***
factor(year)2011  -0.9461564   0.1958876   -4.83    0.000001509243643 ***
factor(year)2012  -0.9396687   0.2628024   -3.58              0.00036 ***
factor(year)2013  -3.2313230   0.3421342   -9.44 < 0.0000000000000002 ***
factor(year)2014  -2.3952387   0.4324472   -5.54    0.000000036111106 ***
factor(year)2015  -4.0591242   0.5374146   -7.55    0.000000000000075 ***
factor(year)2016  -4.2917190   0.6679802   -6.42    0.000000000178496 ***
factor(year)2017  -4.4167551   0.7633298   -5.79    0.000000008809459 ***
factor(year)2018  -4.4383118   0.8570843   -5.18    0.000000255271210 ***
factor(year)2019  -4.4315046   0.9222962   -4.80    0.000001709244025 ***
factor(year)2020  -5.1424231   0.9697915   -5.30    0.000000131847855 ***
factor(year)2021  -9.0627810   1.0200672   -8.88 < 0.0000000000000002 ***
factor(year)2022  -7.5598711   1.1032760   -6.85    0.000000000010718 ***
factor(year)2023  -6.7337690   1.1971346   -5.62    0.000000022238889 ***
dens             -15.1290761   5.1932194   -2.91              0.00363 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
####################
lr <- lm(data=crosssec, 'crime_rate2023 ~ Foreign_pct_2023 + dens2023 + i2023 + a2023 + m2023')
summary(lr)

Call:
lm(formula = "crime_rate2023 ~ Foreign_pct_2023 + dens2023 + i2023 + a2023 + m2023", 
    data = crosssec)

Residuals:
    Min      1Q  Median      3Q     Max 
-10.532  -2.623  -0.321   1.692  18.039 

Coefficients:
                    Estimate  Std. Error t value Pr(>|t|)   
(Intercept)       0.85343416 54.52278812    0.02   0.9875   
Foreign_pct_2023  0.08529522  0.09626347    0.89   0.3779   
dens2023          2.09844713  0.73074644    2.87   0.0051 **
i2023            -0.00001312  0.00000511   -2.57   0.0119 * 
a2023            -0.35472498  0.21949163   -1.62   0.1095   
m2023             0.45165734  0.92153052    0.49   0.6252   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.14 on 92 degrees of freedom
  (17 observations deleted due to missingness)
Multiple R-squared:  0.467, Adjusted R-squared:  0.438 
F-statistic: 16.1 on 5 and 92 DF,  p-value: 0.0000000000225
lr <- lm(data=crosssec, 'crime_rate2023 ~ Foreign_pct_2023 + dens2023 + i2023')
summary(lr)

Call:
lm(formula = "crime_rate2023 ~ Foreign_pct_2023 + dens2023 + i2023", 
    data = crosssec)

Residuals:
   Min     1Q Median     3Q    Max 
-10.41  -2.67  -0.10   1.80  18.47 

Coefficients:
                    Estimate  Std. Error t value Pr(>|t|)    
(Intercept)       6.68430987  2.23539431    2.99   0.0036 ** 
Foreign_pct_2023  0.14527562  0.09104860    1.60   0.1139    
dens2023          2.19844140  0.48776766    4.51 0.000019 ***
i2023            -0.00001280  0.00000491   -2.61   0.0107 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.2 on 94 degrees of freedom
  (17 observations deleted due to missingness)
Multiple R-squared:  0.439, Adjusted R-squared:  0.421 
F-statistic: 24.5 on 3 and 94 DF,  p-value: 0.00000000000847
lr <- lm(data=crosssec, 'crime_rate2023 ~ Foreign_pct_2023 + dens2023')
summary(lr)

Call:
lm(formula = "crime_rate2023 ~ Foreign_pct_2023 + dens2023", 
    data = crosssec)

Residuals:
   Min     1Q Median     3Q    Max 
-12.57  -2.68  -0.03   2.22  19.06 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)   
(Intercept)        3.0755     1.7695    1.74   0.0852 . 
Foreign_pct_2023   0.2789     0.0884    3.15   0.0021 **
dens2023           1.4115     0.4442    3.18   0.0020 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.42 on 101 degrees of freedom
  (11 observations deleted due to missingness)
Multiple R-squared:  0.392, Adjusted R-squared:  0.38 
F-statistic: 32.5 on 2 and 101 DF,  p-value: 0.0000000000125
lr <- lm(data=crosssec_long %>% filter(!dens==Inf), 'crime_rate ~ Foreign_pct + dens + i + a + m + as.factor(year) + as.factor(province)')
summary(lr)

Call:
lm(formula = "crime_rate ~ Foreign_pct + dens + i + a + m + as.factor(year) + as.factor(province)", 
    data = crosssec_long %>% filter(!dens == Inf))

Residuals:
   Min     1Q Median     3Q    Max 
-17.67  -1.45  -0.24   1.13  47.99 

Coefficients:
                                         Estimate   Std. Error t value
(Intercept)                          106.17373769  42.79884099    2.48
Foreign_pct                            0.02372272   0.12402690    0.19
dens                                 -15.12907609   4.32099808   -3.50
i                                      0.00001248   0.00000408    3.06
a                                      0.08847085   0.26590404    0.33
m                                     -0.51765140   0.59297359   -0.87
as.factor(year)2009                    0.62450128   0.51598604    1.21
as.factor(year)2010                   -0.98019085   0.54801073   -1.79
as.factor(year)2011                   -0.94615637   0.58082911   -1.63
as.factor(year)2012                   -0.93966870   0.62517099   -1.50
as.factor(year)2013                   -3.23132298   0.68541686   -4.71
as.factor(year)2014                   -2.39523874   0.75281159   -3.18
as.factor(year)2015                   -4.05912422   0.84191609   -4.82
as.factor(year)2016                   -4.29171903   0.94497437   -4.54
as.factor(year)2017                   -4.41675513   1.05125020   -4.20
as.factor(year)2018                   -4.43831176   1.13944143   -3.90
as.factor(year)2019                   -4.43150461   1.22699865   -3.61
as.factor(year)2020                   -5.14242313   1.31430578   -3.91
as.factor(year)2021                   -9.06278101   1.41277955   -6.41
as.factor(year)2022                   -7.55987113   1.47567298   -5.12
as.factor(year)2023                   -6.73376899   1.61596531   -4.17
as.factor(province)Aalborg            13.43381507   4.46130072    3.01
as.factor(province)Aarhus             37.88026938   9.63432593    3.93
as.factor(province)Ærø               -13.37098175   2.49180728   -5.37
as.factor(province)Albertslund        46.26387013  12.16614686    3.80
as.factor(province)Allerød            28.80494491   7.45405729    3.86
as.factor(province)Assens             -5.66297831   1.95698404   -2.89
as.factor(province)Ballerup           45.00316008  13.21482902    3.41
as.factor(province)Billund            -7.88678655   1.86713078   -4.22
as.factor(province)Bornholm           -9.10225310   1.99029305   -4.57
as.factor(province)Brøndby            50.42314678  13.84318396    3.64
as.factor(province)Brønderslev       -12.00888109   1.73499897   -6.92
as.factor(province)Copenhagen         87.29750013  19.12934426    4.56
as.factor(province)Dragør             22.92088284  10.94609198    2.09
as.factor(province)Egedal             12.73913442   7.03623905    1.81
as.factor(province)Esbjerg            10.32647354   3.71907214    2.78
as.factor(province)Faaborg-Midtfyn    -6.66524713   1.99958955   -3.33
as.factor(province)Fanø              -14.73099670   1.69735579   -8.68
as.factor(province)Favrskov           -6.55401674   2.07498684   -3.16
as.factor(province)Faxe               -2.46008357   2.22589976   -1.11
as.factor(province)Fredensborg        15.62082244   7.41736677    2.11
as.factor(province)Fredericia         28.27757373   7.72407440    3.66
as.factor(province)Frederiksberg      74.64221844  21.87789484    3.41
as.factor(province)Frederikshavn      -0.24757676   2.56771405   -0.10
as.factor(province)Frederikssund       7.91714968   4.80941325    1.65
as.factor(province)Furesø             26.12128368  10.15636010    2.57
as.factor(province)Gentofte           47.51778888  16.05275106    2.96
as.factor(province)Gladsaxe           50.91078995  15.62842715    3.26
as.factor(province)Glostrup           54.94175804  13.82220935    3.97
as.factor(province)Greve              35.19199946  10.87696923    3.24
as.factor(province)Gribskov            5.33558782   4.23315234    1.26
as.factor(province)Guldborgsund       -2.79169304   1.61642216   -1.73
as.factor(province)Haderslev          -3.82225456   1.39530034   -2.74
as.factor(province)Halsnæs            15.01995583   6.45991888    2.33
as.factor(province)Hedensted          -6.29582408   2.05094538   -3.07
as.factor(province)Helsingør          29.23930389   9.16661680    3.19
as.factor(province)Herlev             55.69853861  15.14079373    3.68
as.factor(province)Herning            -5.75258353   1.48797039   -3.87
as.factor(province)Hillerød           14.34257298   5.38923094    2.66
as.factor(province)Hjørring           -5.59035584   1.57462054   -3.55
as.factor(province)Høje-Taastrup      34.26467796   9.52862449    3.60
as.factor(province)Holbæk              3.15623454   3.01252373    1.05
as.factor(province)Holstebro          -5.19005117   1.56952341   -3.31
as.factor(province)Horsens            10.01016805   4.05733047    2.47
as.factor(province)Hørsholm           29.10568252  11.13307108    2.61
as.factor(province)Hvidovre           52.93567851  14.99246451    3.53
as.factor(province)Ikast-Brande       -1.57157505   1.68522400   -0.93
as.factor(province)Ishøj              41.37499405  10.66753385    3.88
as.factor(province)Jammerbugt        -14.36134945   2.14281537   -6.70
as.factor(province)Kalundborg         -1.80171905   2.07158089   -0.87
as.factor(province)Kerteminde         -2.68219963   3.13411881   -0.86
as.factor(province)Køge               16.62127445   5.47326456    3.04
as.factor(province)Kolding            10.27553456   3.64774925    2.82
as.factor(province)Læsø              -38.29502698   5.01633457   -7.63
as.factor(province)Langeland         -15.95968652   1.86844786   -8.54
as.factor(province)Lejre              -3.22708025   2.96198528   -1.09
as.factor(province)Lemvig            -20.33335799   2.26862530   -8.96
as.factor(province)Lolland            -3.37385910   1.61466464   -2.09
as.factor(province)Lyngby-Taarbæk     42.61114532  13.04175950    3.27
as.factor(province)Mariagerfjord      -8.94188584   1.63216576   -5.48
as.factor(province)Middelfart          2.49273744   3.44585370    0.72
as.factor(province)Morsø             -10.88597906   1.64991342   -6.60
as.factor(province)Næstved             3.50839926   3.06166539    1.15
as.factor(province)Norddjurs          -8.83201370   1.68997657   -5.23
as.factor(province)Nordfyns           -8.68376182   1.64371999   -5.28
as.factor(province)Nyborg              4.12839059   3.04130197    1.36
as.factor(province)Odder              -5.73180202   2.42275833   -2.37
as.factor(province)Odense             35.98865674   9.53381439    3.77
as.factor(province)Odsherred           1.30206727   2.88270145    0.45
as.factor(province)Randers             7.36939651   3.28856912    2.24
as.factor(province)Rebild            -15.55706552   2.34048738   -6.65
as.factor(province)Ringkøbing-Skjern -18.30101689   2.61680238   -6.99
as.factor(province)Ringsted            4.42168715   2.61760732    1.69
as.factor(province)Rødovre            59.55062638  16.49190160    3.61
as.factor(province)Roskilde           22.98583646   7.79359323    2.95
as.factor(province)Rudersdal          26.00608007  10.63123180    2.45
as.factor(province)Samsø             -25.51682982   2.42082176  -10.54
as.factor(province)Silkeborg          -0.96903349   2.52923424   -0.38
as.factor(province)Skanderborg         0.59976960   3.48876869    0.17
as.factor(province)Skive              -7.92473937   1.72126625   -4.60
as.factor(province)Slagelse           11.45870849   3.52803272    3.25
as.factor(province)Solrød             23.28774686   9.14078372    2.55
as.factor(province)Sønderborg          5.39133219   4.05171290    1.33
as.factor(province)Sorø               -1.04904406   2.37460278   -0.44
as.factor(province)Stevns             -7.29393505   2.41622384   -3.02
as.factor(province)Struer             -5.25320462   2.14925704   -2.44
as.factor(province)Svendborg           4.21238665   3.79584112    1.11
as.factor(province)Syddjurs           -9.67451430   1.47111390   -6.58
as.factor(province)Tårnby             50.10449186   9.76901485    5.13
as.factor(province)Thisted           -16.57641277   2.29494327   -7.22
as.factor(province)Tønder            -17.15443366   3.30476838   -5.19
as.factor(province)Vallensbæk         40.25376150  13.52497275    2.98
as.factor(province)Varde             -14.95563432   2.44637236   -6.11
as.factor(province)Vejen             -10.33213438   1.80230270   -5.73
as.factor(province)Vejle               2.41966185   2.31859708    1.04
as.factor(province)Vesthimmerlands   -10.20966922   1.86697872   -5.47
as.factor(province)Viborg             -8.02167359   1.56683870   -5.12
as.factor(province)Vordingborg        -3.92336724   1.80709417   -2.17
                                                 Pr(>|t|)    
(Intercept)                                       0.01322 *  
Foreign_pct                                       0.84834    
dens                                              0.00048 ***
i                                                 0.00224 ** 
a                                                 0.73940    
m                                                 0.38282    
as.factor(year)2009                               0.22636    
as.factor(year)2010                               0.07388 .  
as.factor(year)2011                               0.10354    
as.factor(year)2012                               0.13304    
as.factor(year)2013                     0.000002657404201 ***
as.factor(year)2014                               0.00150 ** 
as.factor(year)2015                     0.000001576311532 ***
as.factor(year)2016                     0.000006044762984 ***
as.factor(year)2017                     0.000028141566679 ***
as.factor(year)2018                               0.00010 ***
as.factor(year)2019                               0.00031 ***
as.factor(year)2020                     0.000095514484690 ***
as.factor(year)2021                     0.000000000190343 ***
as.factor(year)2022                     0.000000341157048 ***
as.factor(year)2023                     0.000032683440395 ***
as.factor(province)Aalborg                        0.00265 ** 
as.factor(province)Aarhus               0.000088289281803 ***
as.factor(province)Ærø                  0.000000093614282 ***
as.factor(province)Albertslund                    0.00015 ***
as.factor(province)Allerød                        0.00012 ***
as.factor(province)Assens                         0.00386 ** 
as.factor(province)Ballerup                       0.00068 ***
as.factor(province)Billund              0.000025494096198 ***
as.factor(province)Bornholm             0.000005209373642 ***
as.factor(province)Brøndby                        0.00028 ***
as.factor(province)Brønderslev          0.000000000006687 ***
as.factor(province)Copenhagen           0.000005454649773 ***
as.factor(province)Dragør                         0.03644 *  
as.factor(province)Egedal                         0.07042 .  
as.factor(province)Esbjerg                        0.00556 ** 
as.factor(province)Faaborg-Midtfyn                0.00088 ***
as.factor(province)Fanø              < 0.0000000000000002 ***
as.factor(province)Favrskov                       0.00162 ** 
as.factor(province)Faxe                           0.26925    
as.factor(province)Fredensborg                    0.03538 *  
as.factor(province)Fredericia                     0.00026 ***
as.factor(province)Frederiksberg                  0.00066 ***
as.factor(province)Frederikshavn                  0.92320    
as.factor(province)Frederikssund                  0.09994 .  
as.factor(province)Furesø                         0.01021 *  
as.factor(province)Gentofte                       0.00313 ** 
as.factor(province)Gladsaxe                       0.00115 ** 
as.factor(province)Glostrup             0.000073876691473 ***
as.factor(province)Greve                          0.00124 ** 
as.factor(province)Gribskov                       0.20772    
as.factor(province)Guldborgsund                   0.08437 .  
as.factor(province)Haderslev                      0.00623 ** 
as.factor(province)Halsnæs                        0.02020 *  
as.factor(province)Hedensted                      0.00218 ** 
as.factor(province)Helsingør                      0.00145 ** 
as.factor(province)Herlev                         0.00024 ***
as.factor(province)Herning                        0.00012 ***
as.factor(province)Hillerød                       0.00787 ** 
as.factor(province)Hjørring                       0.00040 ***
as.factor(province)Høje-Taastrup                  0.00033 ***
as.factor(province)Holbæk                         0.29495    
as.factor(province)Holstebro                      0.00097 ***
as.factor(province)Horsens                        0.01373 *  
as.factor(province)Hørsholm                       0.00903 ** 
as.factor(province)Hvidovre                       0.00043 ***
as.factor(province)Ikast-Brande                   0.35120    
as.factor(province)Ishøj                          0.00011 ***
as.factor(province)Jammerbugt           0.000000000029329 ***
as.factor(province)Kalundborg                     0.38459    
as.factor(province)Kerteminde                     0.39225    
as.factor(province)Køge                           0.00243 ** 
as.factor(province)Kolding                        0.00491 ** 
as.factor(province)Læsø                 0.000000000000041 ***
as.factor(province)Langeland         < 0.0000000000000002 ***
as.factor(province)Lejre                          0.27611    
as.factor(province)Lemvig            < 0.0000000000000002 ***
as.factor(province)Lolland                        0.03684 *  
as.factor(province)Lyngby-Taarbæk                 0.00111 ** 
as.factor(province)Mariagerfjord        0.000000050493214 ***
as.factor(province)Middelfart                     0.46955    
as.factor(province)Morsø                0.000000000058293 ***
as.factor(province)Næstved                        0.25202    
as.factor(province)Norddjurs            0.000000198369786 ***
as.factor(province)Nordfyns             0.000000146481713 ***
as.factor(province)Nyborg                         0.17485    
as.factor(province)Odder                          0.01812 *  
as.factor(province)Odense                         0.00017 ***
as.factor(province)Odsherred                      0.65156    
as.factor(province)Randers                        0.02518 *  
as.factor(province)Rebild               0.000000000042244 ***
as.factor(province)Ringkøbing-Skjern    0.000000000004075 ***
as.factor(province)Ringsted                       0.09139 .  
as.factor(province)Rødovre                        0.00032 ***
as.factor(province)Roskilde                       0.00324 ** 
as.factor(province)Rudersdal                      0.01456 *  
as.factor(province)Samsø             < 0.0000000000000002 ***
as.factor(province)Silkeborg                      0.70168    
as.factor(province)Skanderborg                    0.86353    
as.factor(province)Skive                0.000004506668691 ***
as.factor(province)Slagelse                       0.00119 ** 
as.factor(province)Solrød                         0.01095 *  
as.factor(province)Sønderborg                     0.18352    
as.factor(province)Sorø                           0.65872    
as.factor(province)Stevns                         0.00258 ** 
as.factor(province)Struer                         0.01464 *  
as.factor(province)Svendborg                      0.26730    
as.factor(province)Syddjurs             0.000000000067129 ***
as.factor(province)Tårnby               0.000000330786848 ***
as.factor(province)Thisted              0.000000000000818 ***
as.factor(province)Tønder               0.000000239094750 ***
as.factor(province)Vallensbæk                     0.00297 ** 
as.factor(province)Varde                0.000000001251559 ***
as.factor(province)Vejen                0.000000012003988 ***
as.factor(province)Vejle                          0.29685    
as.factor(province)Vesthimmerlands      0.000000053361475 ***
as.factor(province)Viborg               0.000000347152154 ***
as.factor(province)Vordingborg                    0.03009 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.57 on 1450 degrees of freedom
  (96 observations deleted due to missingness)
Multiple R-squared:  0.754, Adjusted R-squared:  0.734 
F-statistic:   38 on 117 and 1450 DF,  p-value: <0.0000000000000002
-15.09932769*sd(crosssec_long$dens, na.rm=T)/sd(crosssec_long$crime_rate, na.rm=T)
[1] -2.8759
regression_std_df <- lm_to_std_df(lr)
Warning: longer object length is not a multiple of shorter object lengthWarning: longer object length is not a multiple of shorter object length
regression_std_df
write.csv(regression_std_df, 'regs/fullcross.csv')
lr2 <- lm(data=crosssec_long %>% filter(!dens==Inf), 'crime_rate ~ Foreign_pct + as.factor(year) + as.factor(province)')
summary(lr2)

Call:
lm(formula = "crime_rate ~ Foreign_pct + as.factor(year) + as.factor(province)", 
    data = crosssec_long %>% filter(!dens == Inf))

Residuals:
   Min     1Q Median     3Q    Max 
-17.92  -1.42  -0.25   1.13  48.28 

Coefficients:
                                      Estimate Std. Error t value
(Intercept)                            27.3345     1.3735   19.90
Foreign_pct                            -0.2198     0.1010   -2.18
as.factor(year)2009                     0.7089     0.4870    1.46
as.factor(year)2010                    -0.5374     0.4893   -1.10
as.factor(year)2011                    -0.3875     0.4927   -0.79
as.factor(year)2012                    -0.2177     0.4978   -0.44
as.factor(year)2013                    -2.3108     0.5049   -4.58
as.factor(year)2014                    -1.3004     0.5182   -2.51
as.factor(year)2015                    -2.8036     0.5380   -5.21
as.factor(year)2016                    -2.8745     0.5744   -5.00
as.factor(year)2017                    -2.7789     0.6041   -4.60
as.factor(year)2018                    -2.6583     0.6293   -4.22
as.factor(year)2019                    -2.4205     0.6500   -3.72
as.factor(year)2020                    -2.8514     0.6611   -4.31
as.factor(year)2021                    -6.4674     0.6747   -9.59
as.factor(year)2022                    -4.9142     0.7067   -6.95
as.factor(year)2023                    -3.7000     0.7765   -4.77
as.factor(province)Aalborg             -4.1037     1.2752   -3.22
as.factor(province)Aarhus               1.9805     1.2780    1.55
as.factor(province)Ærø                -16.6342     1.3880  -11.98
as.factor(province)Albertslund          4.9439     1.9732    2.51
as.factor(province)Allerød              3.6558     1.3223    2.76
as.factor(province)Assens             -11.2125     1.4293   -7.84
as.factor(province)Ballerup            -0.8727     1.2633   -0.69
as.factor(province)Billund             -4.5170     1.2656   -3.57
as.factor(province)Bornholm           -14.0058     1.4219   -9.85
as.factor(province)Brøndby              5.2917     2.1686    2.44
as.factor(province)Brønderslev        -12.5872     1.4285   -8.81
as.factor(province)Christiansø        -24.0605     1.4706  -16.36
as.factor(province)Copenhagen          18.2720     1.6661   10.97
as.factor(province)Dragør             -13.4478     1.3324  -10.09
as.factor(province)Egedal             -12.2991     1.3220   -9.30
as.factor(province)Esbjerg             -3.2719     1.2716   -2.57
as.factor(province)Faaborg-Midtfyn    -12.2797     1.4203   -8.65
as.factor(province)Fanø               -13.4867     1.3447  -10.03
as.factor(province)Favrskov           -12.9033     1.4124   -9.14
as.factor(province)Faxe                -9.2834     1.3816   -6.72
as.factor(province)Fredensborg         -7.7790     1.2804   -6.08
as.factor(province)Fredericia           0.3388     1.2662    0.27
as.factor(province)Frederiksberg       -1.9065     1.3424   -1.42
as.factor(province)Frederikshavn       -7.6835     1.3802   -5.57
as.factor(province)Frederikssund       -8.5687     1.3581   -6.31
as.factor(province)Furesø              -7.4745     1.2415   -6.02
as.factor(province)Gentofte            -4.6656     1.2507   -3.73
as.factor(province)Gladsaxe            -3.9689     1.3726   -2.89
as.factor(province)Glostrup             6.7132     1.3281    5.05
as.factor(province)Greve               -1.9669     1.2436   -1.58
as.factor(province)Gribskov            -7.9928     1.3663   -5.85
as.factor(province)Guldborgsund        -5.5136     1.3594   -4.06
as.factor(province)Haderslev           -6.0824     1.2855   -4.73
as.factor(province)Halsnæs             -6.5576     1.2694   -5.17
as.factor(province)Hedensted          -12.2676     1.3935   -8.80
as.factor(province)Helsingør           -1.4663     1.2380   -1.18
as.factor(province)Herlev               3.1992     1.3261    2.41
as.factor(province)Herning             -7.3487     1.2752   -5.76
as.factor(province)Hillerød            -4.5464     1.2483   -3.64
as.factor(province)Hjørring            -8.8184     1.3760   -6.41
as.factor(province)Høje-Taastrup        2.3727     1.8210    1.30
as.factor(province)Holbæk              -7.4408     1.3025   -5.71
as.factor(province)Holstebro           -8.5188     1.3344   -6.38
as.factor(province)Horsens             -5.2122     1.2380   -4.21
as.factor(province)Hørsholm            -4.8924     1.2613   -3.88
as.factor(province)Hvidovre             0.0893     1.3433    0.07
as.factor(province)Ikast-Brande        -0.7635     1.2646   -0.60
as.factor(province)Ishøj                7.6588     2.7607    2.77
as.factor(province)Jammerbugt         -11.2642     1.4621   -7.70
as.factor(province)Kalundborg          -7.7548     1.3924   -5.57
as.factor(province)Kerteminde         -12.7600     1.3729   -9.29
as.factor(province)Køge                -3.0168     1.2542   -2.41
as.factor(province)Kolding             -3.1825     1.2490   -2.55
as.factor(province)Læsø               -18.9533     1.4635  -12.95
as.factor(province)Langeland          -12.5342     1.4098   -8.89
as.factor(province)Lejre              -12.8366     1.4112   -9.10
as.factor(province)Lemvig             -15.4707     1.4087  -10.98
as.factor(province)Lolland             -1.3618     1.3449   -1.01
as.factor(province)Lyngby-Taarbæk      -1.9291     1.2404   -1.56
as.factor(province)Mariagerfjord       -9.7663     1.3868   -7.04
as.factor(province)Middelfart          -9.2649     1.4011   -6.61
as.factor(province)Morsø              -11.6821     1.4581   -8.01
as.factor(province)Næstved             -7.3362     1.3286   -5.52
as.factor(province)Norddjurs           -8.1579     1.3698   -5.96
as.factor(province)Nordfyns           -11.1224     1.4042   -7.92
as.factor(province)Nyborg              -6.0014     1.3447   -4.46
as.factor(province)Odder              -13.2624     1.3741   -9.65
as.factor(province)Odense               1.0195     1.2618    0.81
as.factor(province)Odsherred           -6.2749     1.4259   -4.40
as.factor(province)Randers             -4.9908     1.3390   -3.73
as.factor(province)Rebild             -13.1431     1.4669   -8.96
as.factor(province)Region Hovedstaden   4.2830     1.3496    3.17
as.factor(province)Region Midtjylland  -6.3453     1.2690   -5.00
as.factor(province)Region Nordjylland  -8.0186     1.3454   -5.96
as.factor(province)Region Sjælland     -5.8666     1.3077   -4.49
as.factor(province)Region Syddanmark   -5.2703     1.2626   -4.17
as.factor(province)Ringkøbing-Skjern  -12.2451     1.3057   -9.38
as.factor(province)Ringsted            -4.7622     1.2392   -3.84
as.factor(province)Rødovre              2.0717     1.3462    1.54
as.factor(province)Roskilde            -4.7399     1.2723   -3.73
as.factor(province)Rudersdal           -7.4063     1.2435   -5.96
as.factor(province)Samsø              -16.7725     1.3405  -12.51
as.factor(province)Silkeborg           -9.9554     1.3613   -7.31
as.factor(province)Skanderborg        -12.2331     1.4095   -8.68
as.factor(province)Skive              -11.2221     1.4149   -7.93
as.factor(province)Slagelse            -1.0685     1.2615   -0.85
as.factor(province)Solrød              -8.9423     1.3389   -6.68
as.factor(province)Sønderborg          -7.9715     1.2381   -6.44
as.factor(province)Sorø                -8.9418     1.4273   -6.26
as.factor(province)Stevns             -14.0121     1.4068   -9.96
as.factor(province)Struer             -11.4660     1.3247   -8.66
as.factor(province)Svendborg           -9.2006     1.3522   -6.80
as.factor(province)Syddjurs           -10.3702     1.3853   -7.49
as.factor(province)Tårnby              15.7099     1.2390   12.68
as.factor(province)Thisted            -11.7390     1.3625   -8.62
as.factor(province)Tønder              -6.9423     1.2760   -5.44
as.factor(province)Vallensbæk          -5.7877     1.5524   -3.73
as.factor(province)Varde               -9.5656     1.3222   -7.23
as.factor(province)Vejen               -8.8759     1.3052   -6.80
as.factor(province)Vejle               -5.5052     1.2501   -4.40
as.factor(province)Vesthimmerlands     -8.0899     1.3499   -5.99
as.factor(province)Viborg             -10.4339     1.3450   -7.76
as.factor(province)Vordingborg         -7.7497     1.3959   -5.55
                                                  Pr(>|t|)    
(Intercept)                           < 0.0000000000000002 ***
Foreign_pct                                        0.02975 *  
as.factor(year)2009                                0.14571    
as.factor(year)2010                                0.27220    
as.factor(year)2011                                0.43164    
as.factor(year)2012                                0.66200    
as.factor(year)2013                     0.0000050908852011 ***
as.factor(year)2014                                0.01219 *  
as.factor(year)2015                     0.0000002125880600 ***
as.factor(year)2016                     0.0000006260155570 ***
as.factor(year)2017                     0.0000045612796564 ***
as.factor(year)2018                     0.0000254026619226 ***
as.factor(year)2019                                0.00020 ***
as.factor(year)2020                     0.0000171391074557 ***
as.factor(year)2021                   < 0.0000000000000002 ***
as.factor(year)2022                     0.0000000000052288 ***
as.factor(year)2023                     0.0000020652220260 ***
as.factor(province)Aalborg                         0.00132 ** 
as.factor(province)Aarhus                          0.12144    
as.factor(province)Ærø                < 0.0000000000000002 ***
as.factor(province)Albertslund                     0.01233 *  
as.factor(province)Allerød                         0.00576 ** 
as.factor(province)Assens               0.0000000000000080 ***
as.factor(province)Ballerup                        0.48977    
as.factor(province)Billund                         0.00037 ***
as.factor(province)Bornholm           < 0.0000000000000002 ***
as.factor(province)Brøndby                         0.01479 *  
as.factor(province)Brønderslev        < 0.0000000000000002 ***
as.factor(province)Christiansø        < 0.0000000000000002 ***
as.factor(province)Copenhagen         < 0.0000000000000002 ***
as.factor(province)Dragør             < 0.0000000000000002 ***
as.factor(province)Egedal             < 0.0000000000000002 ***
as.factor(province)Esbjerg                         0.01017 *  
as.factor(province)Faaborg-Midtfyn    < 0.0000000000000002 ***
as.factor(province)Fanø               < 0.0000000000000002 ***
as.factor(province)Favrskov           < 0.0000000000000002 ***
as.factor(province)Faxe                 0.0000000000255966 ***
as.factor(province)Fredensborg          0.0000000015562319 ***
as.factor(province)Fredericia                      0.78910    
as.factor(province)Frederiksberg                   0.15575    
as.factor(province)Frederikshavn        0.0000000305309908 ***
as.factor(province)Frederikssund        0.0000000003652042 ***
as.factor(province)Furesø               0.0000000021664788 ***
as.factor(province)Gentofte                        0.00020 ***
as.factor(province)Gladsaxe                        0.00389 ** 
as.factor(province)Glostrup             0.0000004824232486 ***
as.factor(province)Greve                           0.11393    
as.factor(province)Gribskov             0.0000000059925783 ***
as.factor(province)Guldborgsund         0.0000524437680822 ***
as.factor(province)Haderslev            0.0000024296828887 ***
as.factor(province)Halsnæs              0.0000002702897193 ***
as.factor(province)Hedensted          < 0.0000000000000002 ***
as.factor(province)Helsingør                       0.23643    
as.factor(province)Herlev                          0.01596 *  
as.factor(province)Herning              0.0000000099794685 ***
as.factor(province)Hillerød                        0.00028 ***
as.factor(province)Hjørring             0.0000000001946919 ***
as.factor(province)Høje-Taastrup                   0.19279    
as.factor(province)Holbæk               0.0000000133032162 ***
as.factor(province)Holstebro            0.0000000002276522 ***
as.factor(province)Horsens              0.0000269916243067 ***
as.factor(province)Hørsholm                        0.00011 ***
as.factor(province)Hvidovre                        0.94699    
as.factor(province)Ikast-Brande                    0.54611    
as.factor(province)Ishøj                           0.00560 ** 
as.factor(province)Jammerbugt           0.0000000000000234 ***
as.factor(province)Kalundborg           0.0000000300916854 ***
as.factor(province)Kerteminde         < 0.0000000000000002 ***
as.factor(province)Køge                            0.01627 *  
as.factor(province)Kolding                         0.01093 *  
as.factor(province)Læsø               < 0.0000000000000002 ***
as.factor(province)Langeland          < 0.0000000000000002 ***
as.factor(province)Lejre              < 0.0000000000000002 ***
as.factor(province)Lemvig             < 0.0000000000000002 ***
as.factor(province)Lolland                         0.31142    
as.factor(province)Lyngby-Taarbæk                  0.12011    
as.factor(province)Mariagerfjord        0.0000000000028342 ***
as.factor(province)Middelfart           0.0000000000519225 ***
as.factor(province)Morsø                0.0000000000000022 ***
as.factor(province)Næstved              0.0000000393234871 ***
as.factor(province)Norddjurs            0.0000000032078438 ***
as.factor(province)Nordfyns             0.0000000000000045 ***
as.factor(province)Nyborg               0.0000086628385177 ***
as.factor(province)Odder              < 0.0000000000000002 ***
as.factor(province)Odense                          0.41922    
as.factor(province)Odsherred            0.0000115371348300 ***
as.factor(province)Randers                         0.00020 ***
as.factor(province)Rebild             < 0.0000000000000002 ***
as.factor(province)Region Hovedstaden              0.00153 ** 
as.factor(province)Region Midtjylland   0.0000006374659755 ***
as.factor(province)Region Nordjylland   0.0000000031228935 ***
as.factor(province)Region Sjælland      0.0000077919824267 ***
as.factor(province)Region Syddanmark    0.0000315899951264 ***
as.factor(province)Ringkøbing-Skjern  < 0.0000000000000002 ***
as.factor(province)Ringsted                        0.00013 ***
as.factor(province)Rødovre                         0.12401    
as.factor(province)Roskilde                        0.00020 ***
as.factor(province)Rudersdal            0.0000000031920660 ***
as.factor(province)Samsø              < 0.0000000000000002 ***
as.factor(province)Silkeborg            0.0000000000004170 ***
as.factor(province)Skanderborg        < 0.0000000000000002 ***
as.factor(province)Skive                0.0000000000000041 ***
as.factor(province)Slagelse                        0.39714    
as.factor(province)Solrød               0.0000000000334673 ***
as.factor(province)Sønderborg           0.0000000001607299 ***
as.factor(province)Sorø                 0.0000000004826894 ***
as.factor(province)Stevns             < 0.0000000000000002 ***
as.factor(province)Struer             < 0.0000000000000002 ***
as.factor(province)Svendborg            0.0000000000144962 ***
as.factor(province)Syddjurs             0.0000000000001190 ***
as.factor(province)Tårnby             < 0.0000000000000002 ***
as.factor(province)Thisted            < 0.0000000000000002 ***
as.factor(province)Tønder               0.0000000615802463 ***
as.factor(province)Vallensbæk                      0.00020 ***
as.factor(province)Varde                0.0000000000007310 ***
as.factor(province)Vejen                0.0000000000148711 ***
as.factor(province)Vejle                0.0000113768136880 ***
as.factor(province)Vesthimmerlands      0.0000000025626297 ***
as.factor(province)Viborg               0.0000000000000156 ***
as.factor(province)Vordingborg          0.0000000332443072 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.5 on 1544 degrees of freedom
Multiple R-squared:  0.767, Adjusted R-squared:  0.749 
F-statistic: 42.7 on 119 and 1544 DF,  p-value: <0.0000000000000002
regression_std_df <- lm_to_std_df(lr2)
Warning: longer object length is not a multiple of shorter object lengthWarning: longer object length is not a multiple of shorter object length
write.csv(regression_std_df, 'regs/notfullcross.csv')
lr3 <- lm(data=crosssec_long %>% filter(!dens==Inf), 'crime_rate ~ Foreign_pct + as.factor(year) + as.factor(province)')
summary(lr3)

Call:
lm(formula = "crime_rate ~ Foreign_pct + as.factor(year) + as.factor(province)", 
    data = crosssec_long %>% filter(!dens == Inf))

Residuals:
   Min     1Q Median     3Q    Max 
-17.92  -1.42  -0.25   1.13  48.28 

Coefficients:
                                      Estimate Std. Error t value
(Intercept)                            27.3345     1.3735   19.90
Foreign_pct                            -0.2198     0.1010   -2.18
as.factor(year)2009                     0.7089     0.4870    1.46
as.factor(year)2010                    -0.5374     0.4893   -1.10
as.factor(year)2011                    -0.3875     0.4927   -0.79
as.factor(year)2012                    -0.2177     0.4978   -0.44
as.factor(year)2013                    -2.3108     0.5049   -4.58
as.factor(year)2014                    -1.3004     0.5182   -2.51
as.factor(year)2015                    -2.8036     0.5380   -5.21
as.factor(year)2016                    -2.8745     0.5744   -5.00
as.factor(year)2017                    -2.7789     0.6041   -4.60
as.factor(year)2018                    -2.6583     0.6293   -4.22
as.factor(year)2019                    -2.4205     0.6500   -3.72
as.factor(year)2020                    -2.8514     0.6611   -4.31
as.factor(year)2021                    -6.4674     0.6747   -9.59
as.factor(year)2022                    -4.9142     0.7067   -6.95
as.factor(year)2023                    -3.7000     0.7765   -4.77
as.factor(province)Aalborg             -4.1037     1.2752   -3.22
as.factor(province)Aarhus               1.9805     1.2780    1.55
as.factor(province)Ærø                -16.6342     1.3880  -11.98
as.factor(province)Albertslund          4.9439     1.9732    2.51
as.factor(province)Allerød              3.6558     1.3223    2.76
as.factor(province)Assens             -11.2125     1.4293   -7.84
as.factor(province)Ballerup            -0.8727     1.2633   -0.69
as.factor(province)Billund             -4.5170     1.2656   -3.57
as.factor(province)Bornholm           -14.0058     1.4219   -9.85
as.factor(province)Brøndby              5.2917     2.1686    2.44
as.factor(province)Brønderslev        -12.5872     1.4285   -8.81
as.factor(province)Christiansø        -24.0605     1.4706  -16.36
as.factor(province)Copenhagen          18.2720     1.6661   10.97
as.factor(province)Dragør             -13.4478     1.3324  -10.09
as.factor(province)Egedal             -12.2991     1.3220   -9.30
as.factor(province)Esbjerg             -3.2719     1.2716   -2.57
as.factor(province)Faaborg-Midtfyn    -12.2797     1.4203   -8.65
as.factor(province)Fanø               -13.4867     1.3447  -10.03
as.factor(province)Favrskov           -12.9033     1.4124   -9.14
as.factor(province)Faxe                -9.2834     1.3816   -6.72
as.factor(province)Fredensborg         -7.7790     1.2804   -6.08
as.factor(province)Fredericia           0.3388     1.2662    0.27
as.factor(province)Frederiksberg       -1.9065     1.3424   -1.42
as.factor(province)Frederikshavn       -7.6835     1.3802   -5.57
as.factor(province)Frederikssund       -8.5687     1.3581   -6.31
as.factor(province)Furesø              -7.4745     1.2415   -6.02
as.factor(province)Gentofte            -4.6656     1.2507   -3.73
as.factor(province)Gladsaxe            -3.9689     1.3726   -2.89
as.factor(province)Glostrup             6.7132     1.3281    5.05
as.factor(province)Greve               -1.9669     1.2436   -1.58
as.factor(province)Gribskov            -7.9928     1.3663   -5.85
as.factor(province)Guldborgsund        -5.5136     1.3594   -4.06
as.factor(province)Haderslev           -6.0824     1.2855   -4.73
as.factor(province)Halsnæs             -6.5576     1.2694   -5.17
as.factor(province)Hedensted          -12.2676     1.3935   -8.80
as.factor(province)Helsingør           -1.4663     1.2380   -1.18
as.factor(province)Herlev               3.1992     1.3261    2.41
as.factor(province)Herning             -7.3487     1.2752   -5.76
as.factor(province)Hillerød            -4.5464     1.2483   -3.64
as.factor(province)Hjørring            -8.8184     1.3760   -6.41
as.factor(province)Høje-Taastrup        2.3727     1.8210    1.30
as.factor(province)Holbæk              -7.4408     1.3025   -5.71
as.factor(province)Holstebro           -8.5188     1.3344   -6.38
as.factor(province)Horsens             -5.2122     1.2380   -4.21
as.factor(province)Hørsholm            -4.8924     1.2613   -3.88
as.factor(province)Hvidovre             0.0893     1.3433    0.07
as.factor(province)Ikast-Brande        -0.7635     1.2646   -0.60
as.factor(province)Ishøj                7.6588     2.7607    2.77
as.factor(province)Jammerbugt         -11.2642     1.4621   -7.70
as.factor(province)Kalundborg          -7.7548     1.3924   -5.57
as.factor(province)Kerteminde         -12.7600     1.3729   -9.29
as.factor(province)Køge                -3.0168     1.2542   -2.41
as.factor(province)Kolding             -3.1825     1.2490   -2.55
as.factor(province)Læsø               -18.9533     1.4635  -12.95
as.factor(province)Langeland          -12.5342     1.4098   -8.89
as.factor(province)Lejre              -12.8366     1.4112   -9.10
as.factor(province)Lemvig             -15.4707     1.4087  -10.98
as.factor(province)Lolland             -1.3618     1.3449   -1.01
as.factor(province)Lyngby-Taarbæk      -1.9291     1.2404   -1.56
as.factor(province)Mariagerfjord       -9.7663     1.3868   -7.04
as.factor(province)Middelfart          -9.2649     1.4011   -6.61
as.factor(province)Morsø              -11.6821     1.4581   -8.01
as.factor(province)Næstved             -7.3362     1.3286   -5.52
as.factor(province)Norddjurs           -8.1579     1.3698   -5.96
as.factor(province)Nordfyns           -11.1224     1.4042   -7.92
as.factor(province)Nyborg              -6.0014     1.3447   -4.46
as.factor(province)Odder              -13.2624     1.3741   -9.65
as.factor(province)Odense               1.0195     1.2618    0.81
as.factor(province)Odsherred           -6.2749     1.4259   -4.40
as.factor(province)Randers             -4.9908     1.3390   -3.73
as.factor(province)Rebild             -13.1431     1.4669   -8.96
as.factor(province)Region Hovedstaden   4.2830     1.3496    3.17
as.factor(province)Region Midtjylland  -6.3453     1.2690   -5.00
as.factor(province)Region Nordjylland  -8.0186     1.3454   -5.96
as.factor(province)Region Sjælland     -5.8666     1.3077   -4.49
as.factor(province)Region Syddanmark   -5.2703     1.2626   -4.17
as.factor(province)Ringkøbing-Skjern  -12.2451     1.3057   -9.38
as.factor(province)Ringsted            -4.7622     1.2392   -3.84
as.factor(province)Rødovre              2.0717     1.3462    1.54
as.factor(province)Roskilde            -4.7399     1.2723   -3.73
as.factor(province)Rudersdal           -7.4063     1.2435   -5.96
as.factor(province)Samsø              -16.7725     1.3405  -12.51
as.factor(province)Silkeborg           -9.9554     1.3613   -7.31
as.factor(province)Skanderborg        -12.2331     1.4095   -8.68
as.factor(province)Skive              -11.2221     1.4149   -7.93
as.factor(province)Slagelse            -1.0685     1.2615   -0.85
as.factor(province)Solrød              -8.9423     1.3389   -6.68
as.factor(province)Sønderborg          -7.9715     1.2381   -6.44
as.factor(province)Sorø                -8.9418     1.4273   -6.26
as.factor(province)Stevns             -14.0121     1.4068   -9.96
as.factor(province)Struer             -11.4660     1.3247   -8.66
as.factor(province)Svendborg           -9.2006     1.3522   -6.80
as.factor(province)Syddjurs           -10.3702     1.3853   -7.49
as.factor(province)Tårnby              15.7099     1.2390   12.68
as.factor(province)Thisted            -11.7390     1.3625   -8.62
as.factor(province)Tønder              -6.9423     1.2760   -5.44
as.factor(province)Vallensbæk          -5.7877     1.5524   -3.73
as.factor(province)Varde               -9.5656     1.3222   -7.23
as.factor(province)Vejen               -8.8759     1.3052   -6.80
as.factor(province)Vejle               -5.5052     1.2501   -4.40
as.factor(province)Vesthimmerlands     -8.0899     1.3499   -5.99
as.factor(province)Viborg             -10.4339     1.3450   -7.76
as.factor(province)Vordingborg         -7.7497     1.3959   -5.55
                                                  Pr(>|t|)    
(Intercept)                           < 0.0000000000000002 ***
Foreign_pct                                        0.02975 *  
as.factor(year)2009                                0.14571    
as.factor(year)2010                                0.27220    
as.factor(year)2011                                0.43164    
as.factor(year)2012                                0.66200    
as.factor(year)2013                     0.0000050908852011 ***
as.factor(year)2014                                0.01219 *  
as.factor(year)2015                     0.0000002125880600 ***
as.factor(year)2016                     0.0000006260155570 ***
as.factor(year)2017                     0.0000045612796564 ***
as.factor(year)2018                     0.0000254026619226 ***
as.factor(year)2019                                0.00020 ***
as.factor(year)2020                     0.0000171391074557 ***
as.factor(year)2021                   < 0.0000000000000002 ***
as.factor(year)2022                     0.0000000000052288 ***
as.factor(year)2023                     0.0000020652220260 ***
as.factor(province)Aalborg                         0.00132 ** 
as.factor(province)Aarhus                          0.12144    
as.factor(province)Ærø                < 0.0000000000000002 ***
as.factor(province)Albertslund                     0.01233 *  
as.factor(province)Allerød                         0.00576 ** 
as.factor(province)Assens               0.0000000000000080 ***
as.factor(province)Ballerup                        0.48977    
as.factor(province)Billund                         0.00037 ***
as.factor(province)Bornholm           < 0.0000000000000002 ***
as.factor(province)Brøndby                         0.01479 *  
as.factor(province)Brønderslev        < 0.0000000000000002 ***
as.factor(province)Christiansø        < 0.0000000000000002 ***
as.factor(province)Copenhagen         < 0.0000000000000002 ***
as.factor(province)Dragør             < 0.0000000000000002 ***
as.factor(province)Egedal             < 0.0000000000000002 ***
as.factor(province)Esbjerg                         0.01017 *  
as.factor(province)Faaborg-Midtfyn    < 0.0000000000000002 ***
as.factor(province)Fanø               < 0.0000000000000002 ***
as.factor(province)Favrskov           < 0.0000000000000002 ***
as.factor(province)Faxe                 0.0000000000255966 ***
as.factor(province)Fredensborg          0.0000000015562319 ***
as.factor(province)Fredericia                      0.78910    
as.factor(province)Frederiksberg                   0.15575    
as.factor(province)Frederikshavn        0.0000000305309908 ***
as.factor(province)Frederikssund        0.0000000003652042 ***
as.factor(province)Furesø               0.0000000021664788 ***
as.factor(province)Gentofte                        0.00020 ***
as.factor(province)Gladsaxe                        0.00389 ** 
as.factor(province)Glostrup             0.0000004824232486 ***
as.factor(province)Greve                           0.11393    
as.factor(province)Gribskov             0.0000000059925783 ***
as.factor(province)Guldborgsund         0.0000524437680822 ***
as.factor(province)Haderslev            0.0000024296828887 ***
as.factor(province)Halsnæs              0.0000002702897193 ***
as.factor(province)Hedensted          < 0.0000000000000002 ***
as.factor(province)Helsingør                       0.23643    
as.factor(province)Herlev                          0.01596 *  
as.factor(province)Herning              0.0000000099794685 ***
as.factor(province)Hillerød                        0.00028 ***
as.factor(province)Hjørring             0.0000000001946919 ***
as.factor(province)Høje-Taastrup                   0.19279    
as.factor(province)Holbæk               0.0000000133032162 ***
as.factor(province)Holstebro            0.0000000002276522 ***
as.factor(province)Horsens              0.0000269916243067 ***
as.factor(province)Hørsholm                        0.00011 ***
as.factor(province)Hvidovre                        0.94699    
as.factor(province)Ikast-Brande                    0.54611    
as.factor(province)Ishøj                           0.00560 ** 
as.factor(province)Jammerbugt           0.0000000000000234 ***
as.factor(province)Kalundborg           0.0000000300916854 ***
as.factor(province)Kerteminde         < 0.0000000000000002 ***
as.factor(province)Køge                            0.01627 *  
as.factor(province)Kolding                         0.01093 *  
as.factor(province)Læsø               < 0.0000000000000002 ***
as.factor(province)Langeland          < 0.0000000000000002 ***
as.factor(province)Lejre              < 0.0000000000000002 ***
as.factor(province)Lemvig             < 0.0000000000000002 ***
as.factor(province)Lolland                         0.31142    
as.factor(province)Lyngby-Taarbæk                  0.12011    
as.factor(province)Mariagerfjord        0.0000000000028342 ***
as.factor(province)Middelfart           0.0000000000519225 ***
as.factor(province)Morsø                0.0000000000000022 ***
as.factor(province)Næstved              0.0000000393234871 ***
as.factor(province)Norddjurs            0.0000000032078438 ***
as.factor(province)Nordfyns             0.0000000000000045 ***
as.factor(province)Nyborg               0.0000086628385177 ***
as.factor(province)Odder              < 0.0000000000000002 ***
as.factor(province)Odense                          0.41922    
as.factor(province)Odsherred            0.0000115371348300 ***
as.factor(province)Randers                         0.00020 ***
as.factor(province)Rebild             < 0.0000000000000002 ***
as.factor(province)Region Hovedstaden              0.00153 ** 
as.factor(province)Region Midtjylland   0.0000006374659755 ***
as.factor(province)Region Nordjylland   0.0000000031228935 ***
as.factor(province)Region Sjælland      0.0000077919824267 ***
as.factor(province)Region Syddanmark    0.0000315899951264 ***
as.factor(province)Ringkøbing-Skjern  < 0.0000000000000002 ***
as.factor(province)Ringsted                        0.00013 ***
as.factor(province)Rødovre                         0.12401    
as.factor(province)Roskilde                        0.00020 ***
as.factor(province)Rudersdal            0.0000000031920660 ***
as.factor(province)Samsø              < 0.0000000000000002 ***
as.factor(province)Silkeborg            0.0000000000004170 ***
as.factor(province)Skanderborg        < 0.0000000000000002 ***
as.factor(province)Skive                0.0000000000000041 ***
as.factor(province)Slagelse                        0.39714    
as.factor(province)Solrød               0.0000000000334673 ***
as.factor(province)Sønderborg           0.0000000001607299 ***
as.factor(province)Sorø                 0.0000000004826894 ***
as.factor(province)Stevns             < 0.0000000000000002 ***
as.factor(province)Struer             < 0.0000000000000002 ***
as.factor(province)Svendborg            0.0000000000144962 ***
as.factor(province)Syddjurs             0.0000000000001190 ***
as.factor(province)Tårnby             < 0.0000000000000002 ***
as.factor(province)Thisted            < 0.0000000000000002 ***
as.factor(province)Tønder               0.0000000615802463 ***
as.factor(province)Vallensbæk                      0.00020 ***
as.factor(province)Varde                0.0000000000007310 ***
as.factor(province)Vejen                0.0000000000148711 ***
as.factor(province)Vejle                0.0000113768136880 ***
as.factor(province)Vesthimmerlands      0.0000000025626297 ***
as.factor(province)Viborg               0.0000000000000156 ***
as.factor(province)Vordingborg          0.0000000332443072 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.5 on 1544 degrees of freedom
Multiple R-squared:  0.767, Adjusted R-squared:  0.749 
F-statistic: 42.7 on 119 and 1544 DF,  p-value: <0.0000000000000002
regression_std_df <- lm_to_std_df(lr3)
Warning: longer object length is not a multiple of shorter object lengthWarning: longer object length is not a multiple of shorter object length
write.csv(regression_std_df, 'regs/nosoc.csv')
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpMb2FkaW5nIGRhdGENCmBgYHtyfQ0KDQpkYXRhMSA8LSByZWFkX2NzdigiZGF0YS8yMDA4MjAwOTIwMTAuY3N2IiwgY29sX25hbWVzPUYsIGxvY2FsZSA9IGxvY2FsZShlbmNvZGluZyA9ICJJU08tODg1OS0xIikpDQpjb2xuYW1lcyhkYXRhMSkgPC0gYygndXNlbGVzczEnLCAndXNlbGVzczInLCAndXNlbGVzczMnLCAncHJvdmluY2UnLCAnb3JpZ2luJywgJ2QyMDA4JywgJ2QyMDA5JywgJ2QyMDEwJykNCiNndWVzc19lbmNvZGluZygiZGF0YS8yMDA4MjAwOTIwMTAuY3N2IikNCiNndWVzc19lbmNvZGluZygiZGF0YS9tZW5hZ2UuY3N2IikNCiNndWVzc19lbmNvZGluZygiZGF0YS9pbmNvbWVkay54bHN4IikNCiNndWVzc19lbmNvZGluZygiZGF0YS9DUklNRVJBVy5jc3YiKQ0KDQpkYXRhMiA8LSByZWFkX2NzdigiZGF0YS8yMDExMjAxMjIwMTMuY3N2IiwgY29sX25hbWVzPUYsIGxvY2FsZSA9IGxvY2FsZShlbmNvZGluZyA9ICJJU08tODg1OS0xIikpDQpjb2xuYW1lcyhkYXRhMikgPC0gYygndXNlbGVzczExJywgJ3VzZWxlc3MyMScsICd1c2VsZXNzMzEnLCAncHJvdmluY2UnLCAnb3JpZ2luJywgJ2QyMDExJywgJ2QyMDEyJywgJ2QyMDEzJykNCmRhdGEzIDwtIHJlYWRfY3N2KCJkYXRhLzIwMTQyMDE1MjAxNi5jc3YiLCBjb2xfbmFtZXM9RiwgbG9jYWxlID0gbG9jYWxlKGVuY29kaW5nID0gIklTTy04ODU5LTEiKSkNCmNvbG5hbWVzKGRhdGEzKSA8LSBjKCd1c2VsZXNzMTInLCAndXNlbGVzczIyJywgJ3VzZWxlc3MzMicsICdwcm92aW5jZScsICdvcmlnaW4nLCAnZDIwMTQnLCAnZDIwMTUnLCAnZDIwMTYnKQ0KZGF0YTQgPC0gcmVhZF9jc3YoImRhdGEvMjAxNzIwMTgyMDE5LmNzdiIsIGNvbF9uYW1lcz1GLCBsb2NhbGUgPSBsb2NhbGUoZW5jb2RpbmcgPSAiSVNPLTg4NTktMSIpKQ0KY29sbmFtZXMoZGF0YTQpIDwtIGMoJ3VzZWxlc3MxMycsICd1c2VsZXNzMjMnLCAndXNlbGVzczMzJywgJ3Byb3ZpbmNlJywgJ29yaWdpbicsICdkMjAxNycsICdkMjAxOCcsICdkMjAxOScpDQpkYXRhNSA8LSByZWFkX2NzdigiZGF0YS8yMDIwMjAyMTIwMjIuY3N2IiwgY29sX25hbWVzPUYsIGxvY2FsZSA9IGxvY2FsZShlbmNvZGluZyA9ICJJU08tODg1OS0xIikpDQpjb2xuYW1lcyhkYXRhNSkgPC0gYygndXNlbGVzczE0JywgJ3VzZWxlc3MyNCcsICd1c2VsZXNzMzQnLCAncHJvdmluY2UnLCAnb3JpZ2luJywgJ2QyMDIwJywgJ2QyMDIxJywgJ2QyMDIyJykNCmRhdGE2IDwtIHJlYWRfY3N2KCJkYXRhLzIwMjMyMDI0MjAyNS5jc3YiLCBjb2xfbmFtZXM9RiwgbG9jYWxlID0gbG9jYWxlKGVuY29kaW5nID0gIklTTy04ODU5LTEiKSkNCmNvbG5hbWVzKGRhdGE2KSA8LSBjKCd1c2VsZXNzMTUnLCAndXNlbGVzczI1JywgJ3VzZWxlc3MzNScsICdwcm92aW5jZScsICdvcmlnaW4nLCAnZDIwMjMnLCAnZDIwMjQnLCAnZDIwMjUnKQ0KZGF0YTcgPC0gcmVhZF9jc3YoImRhdGEvQ1JJTUVSQVcuY3N2IiwgY29sX25hbWVzPUYsIGxvY2FsZSA9IGxvY2FsZShlbmNvZGluZyA9ICJJU08tODg1OS0xIikpDQpjb2xuYW1lcyhkYXRhNykgPC0gYygndXNlbGVzczE1MScsICdwcm92aW5jZScsICdjMjAwOCcsICdjMjAwOScsICdjMjAxMCcsICdjMjAxMScsICdjMjAxMicsICdjMjAxMycsICdjMjAxNCcsICdjMjAxNScsICdjMjAxNicsICdjMjAxNycsICdjMjAxOCcsICdjMjAxOScsICdjMjAyMCcsICdjMjAyMScsICdjMjAyMicsICdjMjAyMycsICdjMjAyNCcpDQpkYXRhOCA8LSByZWFkX2RlbGltKCJkYXRhL21lbmFnZS5jc3YiLCBjb2xfbmFtZXM9RiwgZGVsaW09JzsnLCBsb2NhbGUgPSBsb2NhbGUoZW5jb2RpbmcgPSAiSVNPLTg4NTktMSIpKQ0KY29sbmFtZXMoZGF0YTgpIDwtIGMoJ3VzZWxlc3MxNTEnLCAnYWdlJywgJ3NleCcsICdwcm92aW5jZScsICd0MjAwOCcsICd0MjAwOScsICd0MjAxMCcsICd0MjAxMScsICd0MjAxMicsICd0MjAxMycsICd0MjAxNCcsICd0MjAxNScsICd0MjAxNicsICd0MjAxNycsICd0MjAxOCcsICd0MjAxOScsICd0MjAyMCcsICd0MjAyMScsICd0MjAyMicsICd0MjAyMycsICd0MjAyNCcpDQoNCmluY29tZWRrIDwtIHJlYWRfeGxzeCgnZGF0YS9pbmNvbWVkay54bHN4JykNCmluY29tZWRrIDwtIGluY29tZWRrWzI6MTEwLCBdDQpjb2xuYW1lcyhpbmNvbWVkaykgPC0gYygncHJvdmluY2UnLCAnaTIwMDAnLCAnaTIwMDEnLCAnaTIwMDInLCAnaTIwMDMnLCAnaTIwMDQnLCAnaTIwMDUnLCAnaTIwMDYnLCAnaTIwMDcnLCAnaTIwMDgnLCAnaTIwMDknLCAnaTIwMTAnLCAnaTIwMTEnLCAnaTIwMTInLCAnaTIwMTMnLCAnaTIwMTQnLCAnaTIwMTUnLCAnaTIwMTYnLCAnaTIwMTcnLCAnaTIwMTgnLCAnaTIwMTknLCAnaTIwMjAnLCAnaTIwMjEnLCAnaTIwMjInLCAnaTIwMjMnKQ0KaW5jb21lZGsgPC0gaW5jb21lZGsgJT4lIGZpbHRlcighcHJvdmluY2U9PSdBbGwgRGVubWFyaycgfCAhcHJvdmluY2U9PSdCb3JuaG9sbScpDQoNCmFyZWFkayA8LSByZWFkX2V4Y2VsKCJkYXRhL2FyZWFkay54bHN4IikNCmFyZWFkayRwcm92aW5jZSA8LSBhcmVhZGskLi4uMQ0KYXJlYWRrWywgMjoyMF0gPC0gbGFwcGx5KGFyZWFka1ssIDI6MjBdLCBhcy5udW1lcmljKQ0KYXJlYWRrW2FyZWFkayRwcm92aW5jZSA9PSAiQ2hyaXN0aWFuc8O4IiwgMjoyMF0gPC0gMC40DQojaGVhZChhcmVhZGspDQpgYGANCg0KQ2FsY3VsYXRpbmcgc2V4IHJhdGlvcyBhbmQgYXZlcmFnZSBhZ2VzLg0KYGBge3J9DQojaGVhZChkYXRhOCkNCg0KZGF0YTggPC0gZGF0YTggJT4lDQogIG11dGF0ZShhZ2VfbWlkID0gY2FzZV93aGVuKA0KICAgIHN0cl9kZXRlY3QoYWdlLCAiMC05IikgfiA0LjUsDQogICAgc3RyX2RldGVjdChhZ2UsICIxMC0xOSIpIH4gMTQuNSwNCiAgICBzdHJfZGV0ZWN0KGFnZSwgIjIwLTI5IikgfiAyNC41LA0KICAgIHN0cl9kZXRlY3QoYWdlLCAiMzAtMzkiKSB+IDM0LjUsDQogICAgc3RyX2RldGVjdChhZ2UsICI0MC00OSIpIH4gNDQuNSwNCiAgICBzdHJfZGV0ZWN0KGFnZSwgIjUwLTU5IikgfiA1NC41LA0KICAgIHN0cl9kZXRlY3QoYWdlLCAiNjAtNjkiKSB+IDY0LjUsDQogICAgc3RyX2RldGVjdChhZ2UsICI3MC03OSIpIH4gNzQuNSwNCiAgICBzdHJfZGV0ZWN0KGFnZSwgIjgwLTg5IikgfiA4NC41LA0KICAgIHN0cl9kZXRlY3QoYWdlLCAiOTArIikgfiA5NSwNCiAgICBUUlVFIH4gTkFfcmVhbF8NCiAgKSkNCg0KI3VuaXF1ZShkYXRhOCRwcm92aW5jZSkNCg0KZGF0YV9sb25nIDwtIGRhdGE4ICU+JQ0KICBwaXZvdF9sb25nZXIoY29scyA9IHN0YXJ0c193aXRoKCJ0IiksDQogICAgICAgICAgICAgICBuYW1lc190byA9ICJ5ZWFyIiwNCiAgICAgICAgICAgICAgIG5hbWVzX3ByZWZpeCA9ICJ0IiwNCiAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJwb3B1bGF0aW9uIikNCiN1bmlxdWUoZGF0YV9sb25nJHByb3ZpbmNlKQ0KDQoNCg0KYXZnX2FnZV9ieV9wcm92aW5jZV95ZWFyIDwtIGRhdGFfbG9uZyAlPiUNCiAgZmlsdGVyKCFpcy5uYShhZ2VfbWlkKSAmIHNleD09J1RvdGFsJykgJT4lDQogIGdyb3VwX2J5KHByb3ZpbmNlLCB5ZWFyKSAlPiUNCiAgc3VtbWFyaXNlKA0KICAgIGF2Z19hZ2UgPSB3ZWlnaHRlZC5tZWFuKGFnZV9taWQsIHBvcHVsYXRpb24sIG5hLnJtID0gVFJVRSksDQogICAgLmdyb3VwcyA9ICJkcm9wIg0KICApDQojdW5pcXVlKGF2Z19hZ2VfYnlfcHJvdmluY2VfeWVhciRwcm92aW5jZSkNCg0KcG9wX2J5X3NleCA8LSBkYXRhX2xvbmcgJT4lDQogIGZpbHRlcihzZXggJWluJSBjKCJUb3RhbCIsICJNZW4iKSkgJT4lDQogIGdyb3VwX2J5KHByb3ZpbmNlLCB5ZWFyLCBzZXgpICU+JQ0KICBzdW1tYXJpc2UodG90YWxfcG9wID0gc3VtKHBvcHVsYXRpb24sIG5hLnJtID0gVFJVRSksIC5ncm91cHMgPSAiZHJvcCIpDQojdW5pcXVlKHBvcF9ieV9zZXgkcHJvdmluY2UpDQoNCnBvcF93aWRlIDwtIHBvcF9ieV9zZXggJT4lDQogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSBzZXgsIHZhbHVlc19mcm9tID0gdG90YWxfcG9wKQ0KDQpwb3Bfd2lkZSA8LSBwb3Bfd2lkZSAlPiUNCiAgbXV0YXRlKHBlcmNlbnRfbWFsZSA9IChNZW4gLyBUb3RhbCkgKiAxMDApDQoNCmxvbmdfYXJlYSA8LSBhcmVhZGsgJT4lDQogIG11dGF0ZShhY3Jvc3MoYDIwMDdgOmAyMDI1YCwgYXMubnVtZXJpYykpICU+JSAgICMgY29udmVydCBhbGwgeWVhcnMgdG8gbnVtZXJpYw0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IGAyMDA3YDpgMjAyNWAsDQogICAgbmFtZXNfdG8gPSAieWVhciIsDQogICAgdmFsdWVzX3RvID0gImFyZWEiDQogICkgJT4lDQogIG11dGF0ZSh5ZWFyID0gYXMuY2hhcmFjdGVyKHllYXIpKQ0KDQpwb3BkZW5zIDwtIGZ1bGxfam9pbihsb25nX2FyZWEsIHBvcF93aWRlLCBieT1jKCd5ZWFyJywgJ3Byb3ZpbmNlJykpDQoNCnBvcGRlbnMkZGVuc2l0eSA8LSBwb3BkZW5zJFRvdGFsL3BvcGRlbnMkYXJlYQ0KDQpwb3BkZW5zX3dpZGUgPC0gcG9wZGVucyAlPiUNCiAgcGl2b3Rfd2lkZXIoDQogICAgaWRfY29scyA9IHByb3ZpbmNlLCAgICAgDQogICAgbmFtZXNfZnJvbSA9IHllYXIsICAgICAgICAgICANCiAgICB2YWx1ZXNfZnJvbSA9IGRlbnNpdHksICAgICAgDQogICAgbmFtZXNfZ2x1ZSA9ICJkZW5ze3llYXJ9IiAgICANCiAgKQ0KDQpzZXhyYXRpbyA8LSBwb3Bfd2lkZSAlPiUgc2VsZWN0KHByb3ZpbmNlLCB5ZWFyLCBwZXJjZW50X21hbGUpDQpgYGANCg0KRnVzaW5nIGRpZmZlcmVudCBkYXRhc2V0cyBhbmQgY3JlYXRpbmcgdmFyaWFibGVzDQpgYGB7cn0NCg0Kc2V0ZXF1YWwodW5pcXVlKGRhdGExJHByb3ZpbmNlKSwgdW5pcXVlKGRhdGEyJHByb3ZpbmNlKSkNCg0Kc2V0ZXF1YWwodW5pcXVlKGRhdGExJHByb3ZpbmNlKSwgdW5pcXVlKGRhdGEyJHByb3ZpbmNlKSkNCmRlbWRhdGEgPC0gbGVmdF9qb2luKGRhdGExLCBkYXRhMiwgYnkgPSBjKCJwcm92aW5jZSIsICJvcmlnaW4iKSkNCg0Kc2V0ZXF1YWwodW5pcXVlKGRlbWRhdGEkcHJvdmluY2UpLCB1bmlxdWUoZGF0YTMkcHJvdmluY2UpKQ0KZGVtZGF0YSA8LSBsZWZ0X2pvaW4oZGVtZGF0YSwgZGF0YTMsIGJ5ID0gYygicHJvdmluY2UiLCAib3JpZ2luIikpDQoNCnNldGVxdWFsKHVuaXF1ZShkZW1kYXRhJHByb3ZpbmNlKSwgdW5pcXVlKGRhdGE0JHByb3ZpbmNlKSkNCmRlbWRhdGEgPC0gbGVmdF9qb2luKGRlbWRhdGEsIGRhdGE0LCBieSA9IGMoInByb3ZpbmNlIiwgIm9yaWdpbiIpKQ0KDQpzZXRlcXVhbCh1bmlxdWUoZGVtZGF0YSRwcm92aW5jZSksIHVuaXF1ZShkYXRhNSRwcm92aW5jZSkpDQpkZW1kYXRhIDwtIGxlZnRfam9pbihkZW1kYXRhLCBkYXRhNSwgYnkgPSBjKCJwcm92aW5jZSIsICJvcmlnaW4iKSkNCg0Kc2V0ZXF1YWwodW5pcXVlKGRlbWRhdGEkcHJvdmluY2UpLCB1bmlxdWUoZGF0YTYkcHJvdmluY2UpKQ0KZGVtZGF0YSA8LSBsZWZ0X2pvaW4oZGVtZGF0YSwgZGF0YTYsIGJ5ID0gYygicHJvdmluY2UiLCAib3JpZ2luIikpDQpkZW1kYXRhIDwtIGRlbWRhdGEgJT4lIHNlbGVjdCgncHJvdmluY2UnLCAnb3JpZ2luJywgJ2QyMDA4JywgJ2QyMDA5JywgJ2QyMDEwJywgJ2QyMDExJywgJ2QyMDEyJywgJ2QyMDEzJywgJ2QyMDE0JywgJ2QyMDE1JywgJ2QyMDE2JywgJ2QyMDE3JywgJ2QyMDE4JywgJ2QyMDE5JywgJ2QyMDIwJywgJ2QyMDIxJywgJ2QyMDIyJywgJ2QyMDIzJywgJ2QyMDI0JykNCg0KIyMjIyMjIyMjIw0KZGF0YTcgPC0gZGF0YTcgJT4lIGZpbHRlcighcHJvdmluY2U9PSdOb3Qgc3RhdGVkIG11bmljaXBhbGl0eScpDQpkZW10b3RhbHMgPC0gZGVtZGF0YSAlPiUgZmlsdGVyKG9yaWdpbj09J1RvdGFsJykgJT4lIHNlbGVjdCgncHJvdmluY2UnLCAnZDIwMDgnLCAnZDIwMDknLCAnZDIwMTAnLCAnZDIwMTEnLCAnZDIwMTInLCAnZDIwMTMnLCAnZDIwMTQnLCAnZDIwMTUnLCAnZDIwMTYnLCAnZDIwMTcnLCAnZDIwMTgnLCAnZDIwMTknLCAnZDIwMjAnLCAnZDIwMjEnLCAnZDIwMjInLCAnZDIwMjMnLCAnZDIwMjQnKQ0KDQpzZXRlcXVhbCh1bmlxdWUoZGVtdG90YWxzJHByb3ZpbmNlKSwgdW5pcXVlKGRhdGE3JHByb3ZpbmNlKSkNCnNldGRpZmYodW5pcXVlKGRlbXRvdGFscyRwcm92aW5jZSksIHVuaXF1ZShkYXRhNyRwcm92aW5jZSkpICANCnNldGRpZmYodW5pcXVlKGRhdGE3JHByb3ZpbmNlKSwgdW5pcXVlKGRlbXRvdGFscyRwcm92aW5jZSkpICANCg0KY3JpbWVkYXRhIDwtIGxlZnRfam9pbihkYXRhNywgZGVtdG90YWxzLCBieSA9IGMoInByb3ZpbmNlIikpDQpjcmltZWRhdGEgPC0gY3JpbWVkYXRhICU+JSBmaWx0ZXIoIXByb3ZpbmNlPT0nQWxsIERlbm1hcmsnKQ0KDQp5ZWFycyA8LSAyMDA4OjIwMjQNCg0KZm9yICh5ZWFyIGluIHllYXJzKSB7DQogIGNfY29sIDwtIHBhc3RlMCgiYyIsIHllYXIpDQogIGRfY29sIDwtIHBhc3RlMCgiZCIsIHllYXIpDQogIHJhdGVfY29sIDwtIHBhc3RlMCgiY3JpbWVfcmF0ZSIsIHllYXIpDQogIA0KICBjcmltZWRhdGFbW3JhdGVfY29sXV0gPC0gY3JpbWVkYXRhW1tjX2NvbF1dIC8gY3JpbWVkYXRhW1tkX2NvbF1dKjEwMDANCn0NCmBgYA0KDQpSZWNvZGluZyBjb3VudHJ5IG5hbWVzIGFuZCByZW1vdmluZyByb3dzIGxhYmVsbGVkICdBbGwgRGVubWFyaycgKHdoaWNoIA0KaXMgbm90IGFuIGFjdHVhbCBwcm92aW5jZSkuDQpgYGB7cn0NCmRlbWRhdGEyIDwtIGRlbWRhdGEgJT4lIGZpbHRlcighb3JpZ2luPT0nVG90YWwnKSAlPiUgZmlsdGVyKCFwcm92aW5jZT09J0FsbCBEZW5tYXJrJykNCmRlbWRhdGEyJG9yaWdpbl9hbHBoYTMgPC0gY291bnRyeWNvZGUoZGVtZGF0YTIkb3JpZ2luLCBvcmlnaW4gPSAnY291bnRyeS5uYW1lJywgZGVzdGluYXRpb249J2lzbzNjJykNCmRlbWRhdGEyJG9yaWdpbl9hbHBoYTNbZGVtZGF0YTIkb3JpZ2luPT0nQ3plY2hvc2xvdmFraWEnXSA8LSAnQ1pFJw0KZGVtZGF0YTIkb3JpZ2luX2FscGhhM1tkZW1kYXRhMiRvcmlnaW49PSdEdWJhaSddIDwtICdVQUUnDQpkZW1kYXRhMiRvcmlnaW5fYWxwaGEzW2RlbWRhdGEyJG9yaWdpbj09J0Vzd2FudGluaSddIDwtICdTV1onDQpkZW1kYXRhMiRvcmlnaW5fYWxwaGEzW2RlbWRhdGEyJG9yaWdpbj09J0tvc292byddIDwtICdLU1YnDQpkZW1kYXRhMiRvcmlnaW5fYWxwaGEzW2RlbWRhdGEyJG9yaWdpbj09J05ldGhlcmxhbmRzIEFudGlsbGVzJ10gPC0gJ0FOVCcNCmRlbWRhdGEyJG9yaWdpbl9hbHBoYTNbZGVtZGF0YTIkb3JpZ2luPT0nTm9ydGggWWVtZW4nXSA8LSAnWUVNJw0KZGVtZGF0YTIkb3JpZ2luX2FscGhhM1tkZW1kYXRhMiRvcmlnaW49PSdOb3J0aGVybiBJcmVsYW5kJ10gPC0gJ0dCUicNCmRlbWRhdGEyJHN0b2NrIDwtICdGb3JlaWduJw0KZGVtZGF0YTIkc3RvY2tbZGVtZGF0YTIkb3JpZ2luPT0nRGVubWFyayddIDwtICdEYW5pc2gnDQoNCmRlbWRhdGEzIDwtIGRlbWRhdGEyICU+JSBmaWx0ZXIoIXByb3ZpbmNlPT0nQWxsIERlbm1hcmsnKQ0KYGBgDQoNCkNoZWNraW5nIGNvZGluZyBmb3Igb3JpZ2luL3N0b2NrDQpgYGB7cn0NCnRlc3QgPC0gZGVtZGF0YTMgJT4lIHNlbGVjdCgnb3JpZ2luJywgJ3N0b2NrJykgJT4lIHVuaXF1ZSgpDQojdGVzdA0KDQoNCmBgYA0KDQpDYWxjdWxhdGluZyBzdG9jayBieSBwcm92aW5jZQ0KYGBge3J9DQoNCmRkZ3JvdXAgPC0gZGVtZGF0YTMgJT4lIGdyb3VwX2J5KHN0b2NrLCBwcm92aW5jZSkgJT4lIHN1bW1hcmlzZShkMjAwOD1zdW0oZDIwMDgpLCBkMjAwOT1zdW0oZDIwMDkpLCBkMjAxMD1zdW0oZDIwMTApLCBkMjAxMT1zdW0oZDIwMTEpLCBkMjAxMj1zdW0oZDIwMTIpLCBkMjAxMz1zdW0oZDIwMTMpLCBkMjAxND1zdW0oZDIwMTQpLCBkMjAxNT1zdW0oZDIwMTUpLCBkMjAxNj1zdW0oZDIwMTYpLCBkMjAxNz1zdW0oZDIwMTcpLCBkMjAxOD1zdW0oZDIwMTgpLCBkMjAxOT1zdW0oZDIwMTkpLCBkMjAyMD1zdW0oZDIwMjApLCBkMjAyMT1zdW0oZDIwMjEpLCBkMjAyMj1zdW0oZDIwMjIpLCBkMjAyMz1zdW0oZDIwMjMpLCBkMjAyND1zdW0oZDIwMjQpKQ0KI2RkZ3JvdXANCmBgYA0KDQpDYWxjdWxhdGluZyBwZXJjZW50YWdlcyBmb3IgZGVtb2dyYXBoaWMgZ3JvdXBzDQpgYGB7cn0NCnllYXJzIDwtIDIwMDg6MjAyNA0KZF9jb2xzIDwtIHBhc3RlMCgiZCIsIHllYXJzKQ0KcGN0X2NvbHMgPC0gcGFzdGUwKCJwY3QiLCB5ZWFycykNCg0KZGVtZGF0YV9wY3QgPC0gZGRncm91cCAlPiUNCiAgZ3JvdXBfYnkocHJvdmluY2UpICU+JQ0KICBtdXRhdGUoYWNyb3NzKGFsbF9vZihkX2NvbHMpLCANCiAgICAgICAgICAgICAgICAuZm5zID0gbGlzdCwgDQogICAgICAgICAgICAgICAgLm5hbWVzID0gInRlbXBfey5jb2x9IikpICU+JSAgDQogIG11dGF0ZShhY3Jvc3MoYWxsX29mKGRfY29scyksIA0KICAgICAgICAgICAgICAgIH4gLiAvIHN1bSguLCBuYS5ybSA9IFRSVUUpICogMTAwLCANCiAgICAgICAgICAgICAgICAubmFtZXMgPSAicGN0ey5jb2x9IikpICU+JQ0KICB1bmdyb3VwKCkNCg0KZGVtZGF0YV9wY3QgPC0gZGVtZGF0YV9wY3QgJT4lDQogIHNlbGVjdCgtc3RhcnRzX3dpdGgoInRlbXBfIikpDQojaGVhZChkZW1kYXRhX3BjdCkNCiMjIyMjIyMjIyMjIw0KZGVtZGF0YV93aWRlIDwtIGRlbWRhdGFfcGN0ICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IG1hdGNoZXMoIl5kXFxkezR9JHxecGN0ZFxcZHs0fSQiKSwNCiAgICBuYW1lc190byA9IGMoInR5cGUiLCAieWVhciIpLA0KICAgIG5hbWVzX3BhdHRlcm4gPSAiXihwY3QpP2QoXFxkezR9KSQiDQogICkgJT4lDQogIG11dGF0ZSgNCiAgICB0eXBlID0gaWZlbHNlKHR5cGUgPT0gIiIsICJjb3VudCIsICJwY3QiKSwNCiAgICB5ZWFyID0gYXMuaW50ZWdlcih5ZWFyKQ0KICApICU+JQ0KICB1bml0ZSgidmFybmFtZSIsIHN0b2NrLCB0eXBlLCB5ZWFyLCBzZXAgPSAiXyIpICU+JQ0KICBwaXZvdF93aWRlcigNCiAgICBuYW1lc19mcm9tID0gdmFybmFtZSwNCiAgICB2YWx1ZXNfZnJvbSA9IHZhbHVlDQogICkNCmBgYA0KDQpDb252ZXJ0aW5nIHRvIHdpZGUgZm9ybWF0DQpgYGB7cn0NCmFnZV93aWRlIDwtIGF2Z19hZ2VfYnlfcHJvdmluY2VfeWVhciAlPiUNCiAgcGl2b3Rfd2lkZXIoDQogICAgbmFtZXNfZnJvbSA9IHllYXIsDQogICAgdmFsdWVzX2Zyb20gPSBhdmdfYWdlLA0KICAgIG5hbWVzX3ByZWZpeCA9ICJhIg0KICApDQoNCnNleF93aWRlIDwtIHNleHJhdGlvICU+JQ0KICBwaXZvdF93aWRlcigNCiAgICBuYW1lc19mcm9tID0geWVhciwNCiAgICB2YWx1ZXNfZnJvbSA9IHBlcmNlbnRfbWFsZSwNCiAgICBuYW1lc19wcmVmaXggPSAibSINCiAgKQ0KYGBgDQoNCkZ1c2luZyB2YXJpb3VzIHR5cGVzIG9mIGRhdGENCmBgYHtyfQ0Kc2V0ZXF1YWwodW5pcXVlKGNyaW1lZGF0YSRwcm92aW5jZSksIHVuaXF1ZShkZW1kYXRhX3dpZGUkcHJvdmluY2UpKQ0KY3Jvc3NzZWMgPC0gZnVsbF9qb2luKGNyaW1lZGF0YSwgZGVtZGF0YV93aWRlLCBieSA9IGMoInByb3ZpbmNlIikpDQoNCnNldGVxdWFsKHVuaXF1ZShjcm9zc3NlYyRwcm92aW5jZSksIHVuaXF1ZShhZ2Vfd2lkZSRwcm92aW5jZSkpDQpjcm9zc3NlYyA8LSBmdWxsX2pvaW4oY3Jvc3NzZWMsIGFnZV93aWRlLCBieSA9IGMoInByb3ZpbmNlIikpDQoNCnNldGVxdWFsKHVuaXF1ZShjcm9zc3NlYyRwcm92aW5jZSksIHVuaXF1ZShzZXhfd2lkZSRwcm92aW5jZSkpDQpjcm9zc3NlYyA8LSBmdWxsX2pvaW4oY3Jvc3NzZWMsIHNleF93aWRlLCBieSA9IGMoInByb3ZpbmNlIikpDQoNCnNldGVxdWFsKHVuaXF1ZShjcm9zc3NlYyRwcm92aW5jZSksIHVuaXF1ZShwb3BkZW5zJHByb3ZpbmNlKSkNCmNyb3Nzc2VjIDwtIGZ1bGxfam9pbihjcm9zc3NlYywgcG9wZGVuc193aWRlLCBieSA9IGMoInByb3ZpbmNlIikpDQpgYGANCg0KTG9nZ2luZyBkZW5zaXR5DQpgYGB7cn0NCmNyb3Nzc2VjIDwtIGZ1bGxfam9pbihjcm9zc3NlYywgaW5jb21lZGssIGJ5ID0gYygicHJvdmluY2UiKSkNCg0KY3Jvc3NzZWMgPC0gY3Jvc3NzZWMgJT4lDQogIG11dGF0ZShhY3Jvc3Moc3RhcnRzX3dpdGgoImRlbnMiKSwgbG9nKSkNCmBgYA0KDQpTYW5pdHkgY2hlY2sNCmBgYHtyfQ0KbHIgPC0gbG0oZGF0YT1jcm9zc3NlYywgY3JpbWVfcmF0ZTIwMDggfiBgRm9yZWlnbl9wY3RfMjAwOGAgKyBhMjAwOCArIGkyMDA4ICsgbTIwMDggKyBkZW5zMjAwOCkNCnN1bW1hcnkobHIpDQpgYGANCg0KTG9uZyBmb3JtYXQgKyBjb252ZXJzaW9ucw0KYGBge3J9DQpjcm9zc3NlY19sb25nIDwtIGNyb3Nzc2VjICU+JQ0KICBwaXZvdF9sb25nZXIoDQogICAgY29scyA9IG1hdGNoZXMoIl4oaXxtfGF8Y3JpbWVfcmF0ZXxEYW5pc2hfcGN0fEZvcmVpZ25fcGN0fGRlbnMpXz9cXGR7NH0kIiksDQogICAgbmFtZXNfdG8gPSBjKCIudmFsdWUiLCAieWVhciIpLA0KICAgIG5hbWVzX3BhdHRlcm4gPSAiXihpfG18YXxjcmltZV9yYXRlfERhbmlzaF9wY3R8Rm9yZWlnbl9wY3R8ZGVucylfPyhcXGR7NH0pJCINCiAgKSAlPiUNCiAgbXV0YXRlKA0KICAgIHllYXIgPSBhcy5pbnRlZ2VyKHllYXIpDQogICkgJT4lDQogIGFycmFuZ2UocHJvdmluY2UsIHllYXIpICU+JSBzZWxlY3QocHJvdmluY2UsIHllYXIsIGksIG0sIGEsIGNyaW1lX3JhdGUsIERhbmlzaF9wY3QsIEZvcmVpZ25fcGN0LCBkZW5zKSAlPiUgZmlsdGVyKHllYXIgPiAyMDA3ICYgeWVhciA8IDIwMjQpDQoNCg0KY3Jvc3NzZWMkaV9kaWZmXzIwMjNfMjAwOCAgICAgICAgIDwtIGNyb3Nzc2VjJGkyMDIzIC0gY3Jvc3NzZWMkaTIwMDgNCmNyb3Nzc2VjJG1fZGlmZl8yMDIzXzIwMDggICAgICAgICA8LSBjcm9zc3NlYyRtMjAyMyAtIGNyb3Nzc2VjJG0yMDA4DQpjcm9zc3NlYyRhX2RpZmZfMjAyM18yMDA4ICAgICAgICAgPC0gY3Jvc3NzZWMkYTIwMjMgLSBjcm9zc3NlYyRhMjAwOA0KY3Jvc3NzZWMkY3JpbWVfcmF0ZV9kaWZmXzIwMjNfMjAwOCA8LSBjcm9zc3NlYyRjcmltZV9yYXRlMjAyMyAtIGNyb3Nzc2VjJGNyaW1lX3JhdGUyMDA4DQpjcm9zc3NlYyREYW5pc2hfcGN0X2RpZmZfMjAyM18yMDA4IDwtIGNyb3Nzc2VjJERhbmlzaF9wY3RfMjAyMyAtIGNyb3Nzc2VjJERhbmlzaF9wY3RfMjAwOA0KY3Jvc3NzZWMkRm9yZWlnbl9wY3RfZGlmZl8yMDIzXzIwMDggPC0gY3Jvc3NzZWMkRm9yZWlnbl9wY3RfMjAyMyAtIGNyb3Nzc2VjJEZvcmVpZ25fcGN0XzIwMDgNCmNyb3Nzc2VjJGRlbnNfZGlmZl8yMDIzXzIwMDggICAgICAgPC0gY3Jvc3NzZWMkZGVuczIwMjMgLSBjcm9zc3NlYyRkZW5zMjAwOA0KDQpgYGANCg0KDQpBbGwgcmVncmVzc2lvbnMgKyB0ZXN0cw0KYGBge3J9DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNESUQNCmxyIDwtIGxtKGRhdGE9Y3Jvc3NzZWMsIGNyaW1lX3JhdGVfZGlmZl8yMDIzXzIwMDggfiBGb3JlaWduX3BjdF9kaWZmXzIwMjNfMjAwOCArIGRlbnNfZGlmZl8yMDIzXzIwMDggKyBhX2RpZmZfMjAyM18yMDA4ICsgaV9kaWZmXzIwMjNfMjAwOCArIG1fZGlmZl8yMDIzXzIwMDgpDQpzdW1tYXJ5KGxyKQ0KDQpyZWdyZXNzaW9uX3N0ZF9kZiA8LSBsbV90b19zdGRfZGYobHIpDQp3cml0ZS5jc3YocmVncmVzc2lvbl9zdGRfZGYsICdyZWdzL2Z1bGxkaWZmLmNzdicpDQpgYGANCg0KYGBge3J9DQojIyMjIyMjIyMjDQojIyMjIyMjIyMjDQoNCg0KIyMjIyMjIyMjIyMjUHJvdmluY2UgZWZmZWN0cw0KDQpscjIgPC0gcGxtKGNyaW1lX3JhdGUgfiBpICsgbSArIGEgKyBGb3JlaWduX3BjdCArIGRlbnMsIA0KICAgIGRhdGEgPSBjcm9zc3NlY19sb25nLCANCiAgICBpbmRleCA9IGMoInByb3ZpbmNlIiwgInllYXIiKSwgDQogICAgbW9kZWwgPSAid2l0aGluIikNCg0Kc3VtbWFyeShscjIpDQpyZWdyZXNzaW9uX3N0ZF9kZiA8LSBwbG1fdG9fc3RkX2RmKGxyMikNCndyaXRlLmNzdihyZWdyZXNzaW9uX3N0ZF9kZiwgJ3JlZ3MvcHJvdmVmZmVjdHMuY3N2JykNCmBgYA0KDQpgYGB7cn0NCiMjIyMjIyMjIyMjI1llYXIgZWZmZWN0cyAoZmFjdG9yKQ0KDQpscjMgPC0gcGxtKGNyaW1lX3JhdGUgfiBpICsgbSArIGEgKyBGb3JlaWduX3BjdCArIGZhY3Rvcih5ZWFyKSArIGRlbnMsIA0KICAgICAgICAgICBkYXRhID0gY3Jvc3NzZWNfbG9uZywgDQogICAgICAgICAgIGluZGV4ID0gYygicHJvdmluY2UiLCAieWVhciIpLCANCiAgICAgICAgICAgbW9kZWwgPSAid2l0aGluIikNCg0Kc3VtbWFyeShscjMpDQpyZWdyZXNzaW9uX3N0ZF9kZiA8LSBwbG1fdG9fc3RkX2RmKGxyMykNCnJlZ3Jlc3Npb25fc3RkX2RmDQp3cml0ZS5jc3YocmVncmVzc2lvbl9zdGRfZGYsICdyZWdzL3Byb3Z5ZWFyZWZmZWN0cy5jc3YnKQ0KYGBgDQoNCmBgYHtyfQ0Kcm9idXN0X3Jlc3VsdHMgPC0gbG10ZXN0Ojpjb2VmdGVzdChscjMsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgdmNvdiA9IHZjb3ZIQyhscjMsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gInNzcyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyID0gImdyb3VwIikpDQpwcmludChyb2J1c3RfcmVzdWx0cykNCg0KDQpka19yZXN1bHRzIDwtIGxtdGVzdDo6Y29lZnRlc3QobHIzLCB2Y292ID0gdmNvdlNDQyhscjMpKQ0KDQpwcmludChka19yZXN1bHRzKSANCmBgYA0KDQpgYGB7cn0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjDQpsciA8LSBsbShkYXRhPWNyb3Nzc2VjLCAnY3JpbWVfcmF0ZTIwMjMgfiBGb3JlaWduX3BjdF8yMDIzICsgZGVuczIwMjMgKyBpMjAyMyArIGEyMDIzICsgbTIwMjMnKQ0Kc3VtbWFyeShscikNCg0KbHIgPC0gbG0oZGF0YT1jcm9zc3NlYywgJ2NyaW1lX3JhdGUyMDIzIH4gRm9yZWlnbl9wY3RfMjAyMyArIGRlbnMyMDIzICsgaTIwMjMnKQ0Kc3VtbWFyeShscikNCg0KbHIgPC0gbG0oZGF0YT1jcm9zc3NlYywgJ2NyaW1lX3JhdGUyMDIzIH4gRm9yZWlnbl9wY3RfMjAyMyArIGRlbnMyMDIzJykNCnN1bW1hcnkobHIpDQoNCg0KDQpsciA8LSBsbShkYXRhPWNyb3Nzc2VjX2xvbmcgJT4lIGZpbHRlcighZGVucz09SW5mKSwgJ2NyaW1lX3JhdGUgfiBGb3JlaWduX3BjdCArIGRlbnMgKyBpICsgYSArIG0gKyBhcy5mYWN0b3IoeWVhcikgKyBhcy5mYWN0b3IocHJvdmluY2UpJykNCnN1bW1hcnkobHIpDQoNCg0KDQotMTUuMDk5MzI3Njkqc2QoY3Jvc3NzZWNfbG9uZyRkZW5zLCBuYS5ybT1UKS9zZChjcm9zc3NlY19sb25nJGNyaW1lX3JhdGUsIG5hLnJtPVQpDQoNCnJlZ3Jlc3Npb25fc3RkX2RmIDwtIGxtX3RvX3N0ZF9kZihscikNCnJlZ3Jlc3Npb25fc3RkX2RmDQp3cml0ZS5jc3YocmVncmVzc2lvbl9zdGRfZGYsICdyZWdzL2Z1bGxjcm9zcy5jc3YnKQ0KYGBgDQoNCmBgYHtyfQ0KbHIyIDwtIGxtKGRhdGE9Y3Jvc3NzZWNfbG9uZyAlPiUgZmlsdGVyKCFkZW5zPT1JbmYpLCAnY3JpbWVfcmF0ZSB+IEZvcmVpZ25fcGN0ICsgYXMuZmFjdG9yKHllYXIpICsgYXMuZmFjdG9yKHByb3ZpbmNlKScpDQpzdW1tYXJ5KGxyMikNCnJlZ3Jlc3Npb25fc3RkX2RmIDwtIGxtX3RvX3N0ZF9kZihscjIpDQp3cml0ZS5jc3YocmVncmVzc2lvbl9zdGRfZGYsICdyZWdzL25vdGZ1bGxjcm9zcy5jc3YnKQ0KYGBgDQoNCg0KYGBge3J9DQpscjMgPC0gbG0oZGF0YT1jcm9zc3NlY19sb25nICU+JSBmaWx0ZXIoIWRlbnM9PUluZiksICdjcmltZV9yYXRlIH4gRm9yZWlnbl9wY3QgKyBhcy5mYWN0b3IoeWVhcikgKyBhcy5mYWN0b3IocHJvdmluY2UpJykNCnN1bW1hcnkobHIzKQ0KcmVncmVzc2lvbl9zdGRfZGYgPC0gbG1fdG9fc3RkX2RmKGxyMykNCndyaXRlLmNzdihyZWdyZXNzaW9uX3N0ZF9kZiwgJ3JlZ3Mvbm9zb2MuY3N2JykNCmBgYA0KDQo=