【问题标题】:Fitting a linear model for every factor in a variable为变量中的每个因子拟合线性模型
【发布时间】:2018-07-07 11:43:21
【问题描述】:

我有一个数据框,其中包含与森林组成相关的一长串测量值。我想为这些变量之一中包含的每个独特树种拟合一个线性模型,但一直在努力实现这一目标。我已经提供了我当前的代码方法。

for (species in TreeData$SPECIES){
  CurrSpecies <- lm(GROWTH ~ DBH + TOTAL_HGT + BASTAND + BAHW + 
BA_UPPER + BA_MAX + GDD + PCP + TREE_STATU, 
data = TreeData, subset = SPECIES_CO == species)
  path <- paste(".../SUMMARY_", species, ".csv")
  write(capture.output(summary(CurrSpecies)), file = path)
}

【问题讨论】:

    标签: r loops lm factors


    【解决方案1】:

    使用您的策略提取系数表的一种方法是这样的,以(内置)iris 数据集为例:

    for (species in unique(iris$Species)){
      data <- iris[iris$Species==species, ]
      outname <- paste0("output_folder/", species, ".csv")
      fit <- lm(data[["Sepal.Length"]] ~ data[["Sepal.Width"]])
      fit_coefs <- as.data.frame(summary(fit)$coefficients)
      write.csv(fit_coefs, outname)
    }
    

    还可以查看broom:: 包,它使此类任务更快、更一致。

    如果您需要摘要的其他部分,您可以尝试提取和重组摘要对象summary(fit) 的不同部分。

    还有一个重要提示:在原帖中包含您的TreeData df 样本很重要!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多