【问题标题】:Extractor function for "call" in lmlm中“调用”的提取函数
【发布时间】:2014-11-14 03:09:14
【问题描述】:

是否有线性模型的通用提取器函数可以从模型中提取 调用?我正在寻找跨数据框列表应用模型,然后提取该模型的调用(我在许多数据框和模型上做了很多次,所以寻找一种简单的方法来跟踪哪个模型是哪个)

示例数据:

set.seed(1234)
library(plyr)
    data <- data.frame(
        biz = sample(c("telco","shipping","tech"), 50, replace = TRUE),
        region = sample(c("mideast","americas"), 50, replace = TRUE),
        orders = sample(1:50, 50, replace=TRUE),
        revenue = sample(100:150, 50, replace=TRUE)
        )

现在,如果我想通过“区域”对这些数据应用一个简单的 lm:

modlist <- dlply(data, 'region', function(df){
    summary(lm(revenue ~ orders, data=df))
    })

对于具有标准提取函数的东西,例如“coefficients” = “coef”,这很简单:

coefs <- ldply(modlist, coef)

但我找不到任何方法来提取“调用”,例如“lm(公式 = 收入 ~ 订单,数据 = df)”。有任何想法吗?

【问题讨论】:

  • 您可以在lm 中找到电话,例如lm(mpg ~ hp, mtcars)$callsummary(model)$call

标签: r


【解决方案1】:

只需编写您自己的函数即可以与 stats:::print.lm 相同的方式提取调用

coefs <- ldply(modlist, function(x) deparse(x$call))

【讨论】:

    【解决方案2】:

    你可以使用[[:

    lapply(modlist, "[[", "call")
    # $americas
    # lm(formula = revenue ~ orders, data = df)
    # 
    # $mideast
    # lm(formula = revenue ~ orders, data = df)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-20
      • 1970-01-01
      • 2015-02-22
      • 2012-08-28
      • 2020-10-07
      • 2016-11-15
      • 1970-01-01
      相关资源
      最近更新 更多