簡體   English   中英

將 lm 摘要中的 R 平方保存為數據框

[英]Save R-squared from lm summary as a dataframe

我想將 lm 模型的結果保存到數據框中。 我生成了一個空數據框(Startframe),我想在其中保存結果。

在這種情況下,我的包含數據的數據框稱為 testdata。 它在第一列中包含日期,然后在其余列中包含幾個站。

到目前為止,這段代碼正在努力獲得 Estimate,Std。 誤差、t 值和 Pr(>|t|)。

for(i in 2:ncol(testdata)) {
  x <- testdata[,1]
  y <- testdata[,i]
  mod <- lm(y ~ x)
  summary(mod)

  Startframe[i,] <- c(i,
                 summary(mod)[['coefficients']]['(Intercept)','Estimate'],
                 summary(mod)[['coefficients']]['x','Estimate'],
                 summary(mod)[['coefficients']]['x','Std. Error'],
                 summary(mod)[['coefficients']]['x','t value'],
                 summary(mod)[['coefficients']]['x','Pr(>|t|)'])

但是我怎樣才能提取 r.squared?

我試圖將 summary(mod)[['r.squared']] 添加到列表中,但它給了我錯誤的數字。

我知道 str(summary(mod)) 給了我一個概述,但我不知道如何將它添加到我的循環中。

謝謝你的幫助。

在不同數據集上使用相同模型的tidyverse方法是使用使用broom包的tidyverse方法。

在這個例子中,我使用diamonds數據集來測試克拉和深度如何影響鑽石在不同鑽石切工中的價格。

require(tidyverse)
require(broom)

diamonds %>% 
  nest(-cut) %>% 
  mutate(model = purrr::map(data, function(x) { 
    lm(price ~ carat + depth, data = x)}), 
    values = purrr::map(model, glance), 
    r.squared = purrr::map_dbl(values, "r.squared"), 
    pvalue = purrr::map_dbl(values, "p.value")) %>% 
  select(-data, -model, -values)

 cut       r.squared pvalue
  <ord>         <dbl>  <dbl>
1 Ideal         0.867      0
2 Premium       0.856      0
3 Good          0.851      0
4 Very Good     0.859      0
5 Fair          0.746      0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM