#r
Вопрос:
У меня есть некоторые данные, которые выглядят так:
date Moratalaz Cuatro_Caminos Barrio_de_Pilar Vallecas
1 2010-01-01 35 19 23 21
2 2010-01-02 62 40 40 44
3 2010-01-03 76 65 53 55
4 2010-01-04 69 64 52 56
5 2010-01-05 67 52 40 54
6 2010-01-06 48 33 29 37
7 2010-01-07 37 50 28 28
8 2010-01-08 39 37 19 26
9 2010-01-09 47 33 31 33
10 2010-01-10 66 51 41 47
Я могу запустить модель линейной регрессии по отдельным столбцам, используя:
lm(data$Moratalaz ~ data$Cuatro_Caminos)
Тем не менее, я хотел бы запустить регрессионную модель для каждой комбинации столбцов (за исключением столбца даты).
Я попробовал что-то вроде следующего, но не смог заставить это работать:
formula_list <- list(as.formula('data$Moratalaz ~ data$Barrio_de_Pilar'),
as.formula('data$Barrio_de_Pilar ~ data$Cuatro_Caminos')
)
lapply(formula_list, FUN = lm, data = data)
Данные
data <- structure(list(date = structure(c(14610, 14611, 14612, 14613,
14614, 14615, 14616, 14617, 14618, 14619), class = "Date"), Moratalaz = c(35,
62, 76, 69, 67, 48, 37, 39, 47, 66), Cuatro_Caminos = c(19, 40,
65, 64, 52, 33, 50, 37, 33, 51), Barrio_de_Pilar = c(23, 40,
53, 52, 40, 29, 28, 19, 31, 41), Vallecas = c(21, 44, 55, 56,
54, 37, 28, 26, 33, 47)), row.names = c(NA, 10L), class = "data.frame")
Ответ №1:
Рассмотрите возможность использования
combn(names(data)[-1], 2, FUN = function(x)
lm(reformulate(x[1], response = x[2]), data = data), simplify = FALSE)
Комментарии:
1. Я получаю следующую ошибку
Error in terms.formula(formula, data = data) : se intenta usar un nombre de varible de longitud cero
При попытке использовать имя переменной нулевой длины.2. @user113156 это не дало мне ошибки, хотя. Но я думаю, что ваш вопрос состоит в том, чтобы получить все попарно. который я обновил
3. Хорошо, ошибка возникает при полной выборке данных.
4. Спасибо! Вот и все.
5. Еще один вопрос: как я могу задать имена списков для различных комбинаций имен столбцов? Код генерирует формулы, и я просто думаю, могу ли я назвать имена списков формулам.