как регрессировать безработицу по минимальной заработной плате в r
У меня есть два разных набора данных, в одном из которых указан годовой уровень безработицы по штатам (указан в одном столбце), а во втором наборе данных - минимальная заработная плата для каждого штата. У обоих есть данные только за период с 2003 по 2020 год.
Проблема в
- Они находятся в разных наборах данных
- Переменная X (минимальная заработная плата) охватывает более 17 различных столбцов.
Вопросов
- Как я могу регрессировать данные из 2 разных наборов данных
- Как я могу регрессировать 17 столбцов, не набирая minwage$2003 + minwage$2004 +. . . + minwage$2020
Я пробовал это, но опять же, это очень неэффективно.
unemp_minwage2015 <- lm(unemployment_03_20$`U-3` ~ minwage$`2003` + minwage$`2004` + minwage$`2005` + minwage$`2006` + minwage$`2007` + minwage$`2008` + minwage$`2009` + minwage$`2010` + minwage$`2011` + minwage$`2012` + minwage$`2013` + minwage$`2014` + minwage$`2015` + minwage$`2016` + minwage$`2017` + minwage$`2018` + minwage$`2019` + minwage$`2020`)
Не говоря уже о том, что я получил этот код ошибки: Ошибка в model.frame.default (формула = безработица_03_20$
U-3
~ minwage$ +: длина переменной различается (найдено для 'minwage$
2003
')
Затем я попытался просто регрессировать на один год минимальной заработной платы, но получил аналогичную ошибку.
Предложения
1 ответ
Чтобы получить точную формулу в вашем вопросе:
as.formula(paste("unemployment_03_20$`U-3` ~", paste(paste0("minwage$`", 2003:2020, "`"), collapse = " + ")))
Итак, вы можете сделать что-то вроде этого (для ясности):
model <- as.formula(paste("unemployment_03_20$`U-3` ~", paste(paste0("minwage$`", 2003:2020, "`"), collapse = " + ")))
unemp_minwage2015 <- lm(model)
Я настоятельно рекомендую сначала объединить данные, чтобы случайно не сделать ошибку, а затем предоставить
lm()
с этими данными (а не с отдельными векторами из нескольких наборов данных.