#r
Вопрос:
У меня есть тестовая линейная модель:
set.seed(93874)
test_x <- rnorm(1000)
test_y <- rnorm(1000) test_x
model <- lm(test_y ~ test_x)
с коэффициентами «перехват» и «тест_х»:
model$coefficients
(Intercept) test_x
0.04047742 0.98198305
Использование команды model$terms
дает довольно много данных
> model$terms
test_y ~ test_x
attr(,"variables")
list(test_y, test_x)
attr(,"factors")
test_x
test_y 0
test_x 1
attr(,"term.labels")
[1] "test_x"
attr(,"order")
[1] 1
attr(,"intercept")
[1] 1
attr(,"response")
[1] 1
attr(,".Environment")
<environment: R_GlobalEnv>
attr(,"predvars")
list(test_y, test_x)
attr(,"dataClasses")
test_y test_x
"numeric" "numeric"
из которого я чувствую, что должен иметь возможность извлекать имена коэффициентов и использовать их в качестве имен строк в матрице, аналогичной той, которая была сгенерирована
rows <- c("test_x")
cols <- c("Value")
matrix_test <- matrix(c(1), nrow = 1, ncol = 1, byrow = TRUE, dimnames = list(rows, cols))
> matrix_test
Value
test_x 1
Есть ли способ сделать это с помощью пакета или команды/функции? Я не хочу явно называть строки, так как это сделает добавление и удаление переменных в моей реальной программе чрезвычайно громоздким.
Комментарии:
1. Ты хочешь
names(model$coefficients)
?2. @RuiBarradas да! Это прекрасно работает. Если вы поставите это в качестве ответа, я отмечу это как решение.
Ответ №1:
Вы можете использовать
names(model$coefficients)
[1] "(Intercept)" "test_x"
Или эквивалентно
> names(coef(model))
[1] "(Intercept)" "test_x"