Как мне извлечь имена коэффициентов из коэффициентов lm?

#r #linear-regression

#r #линейная регрессия

Вопрос:

У меня есть следующий код, который отображает некоторые коэффициенты из lm

 fit <-lm(Petal.Width ~ Petal.Length, data=iris) 
cf <-coef(summary(fit,complete = TRUE)) 
colnames(cf)[4] <- "pval"
cf<- data.frame(cf)
cf <-cf[cf$pval < 0.05,]
cf <-cf[order(-cf$pval), ]
head(cf)
cf[1,1]
  

Я хочу извлечь имена в левом столбце, т.е. (перехват) и длину лепестка.
Я думал, что могу использовать cf[1,1], но он показывает оценку

Ответ №1:

Они извлекаются с помощью rownames :

 fit <-lm(Petal.Width ~ Petal.Length, data=iris) 
cf <-coef(summary(fit,complete = TRUE)) 
rownames(cf)
#[1] "(Intercept)"  "Petal.Length"
  

Ответ №2:

tidyverse Решением было бы использовать broom :

 library(broom)
tidy_fit <- tidy(fit)
  

Результаты:

 # A tibble: 2 x 5
  term         estimate std.error statistic  p.value
  <chr>           <dbl>     <dbl>     <dbl>    <dbl>
1 (Intercept)    -0.363   0.0398      -9.13 4.70e-16
2 Petal.Length    0.416   0.00958     43.4  4.68e-86
  

Тогда легко извлечь нужные компоненты, и полученный код будет более читаемым, например tidy_fit$term , для получения списка переменных ( (Intercept) и Petal.Length ).