问题标签 [broom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1302 浏览

r - R2 值 - dplyr 和 broom

我正在使用 dplyr 和 broom 组合(如下所示)并使用 dplyr 拟合几个回归模型以按组提取回归的回归系数。但是 - 我也对每个单独回归的 R2 值感兴趣(不仅对于整个模型)。我尝试使用增强和扫视功能 - 但无法提取 R2 值。是否有捷径可寻?

提前谢谢了!

0 投票
0 回答
1005 浏览

r - 与 dplyr+broom 匹配的条件 nls

我正在使用 dplyr 和 broom 组合,并尝试根据数据组内部的条件拟合回归模型。最后我想提取每组的回归系数。

到目前为止,我对所有组都得到了相同的拟合结果(每个组用字母分隔a:f)。这是主要问题。

拟合条件可以描述如下; direc=North和 if V<J1do 与方程拟合exp((-t_pw)/f0*exp(-del1*(1-V/J1)^2))else ifdirec=SouthV>J2 do 与相同的方程拟合。在这两种情况下,如果V<J1&V>J2不满足返回1每种情况。

更新 我发现通过此链接中的建议,条件nls可以是可能的conditional-formula-for-nls 。

nls_fit

另一方面,当我尝试拟合其他列时,例如 DQ1、DQ2 和 DQ3;

我试过 nls_fit=nlsLM(df[,3:6]~ifelse(.....

nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : fn 函数的评估返回不合理的值!

现在问题归结为多柱拟合。我怎样才能适应多列DQ0:DQ3?我检查了如何从数据框中简洁地编写包含许多变量的公式?但找不到在我的数据框中使用的解决方案。


此外,当我DQ0对其组内的列进行拟合时,您可以从输出中看到,为所有组生成相同的 Del 和 J 参数a:f

df_new

0 投票
1 回答
1217 浏览

r - 在具有单个 lm 对象的 dplyr 工作流中使用 `broom:::glance` 失败

当我broom:::glance以以下方式使用时:

我明白了

但是,当我添加一个group_by

确实给出了预期的结果:

我在这里遗漏了什么,还是 dplyr/broom 中的错误?

0 投票
1 回答
4827 浏览

r - R:在数据集的不同子集上应用 Anova 并收集输出的函数

一个常见的任务是必须对数据集的不同子集执行某种统计分析(如 anova、glm 或混合模型),并将输出表与汇总系数和 p 值组合在单个数据框中。我正在寻找一个通用函数,该函数将采用模型类型(例如aov(...)orlm(...)glm(...)or glmer(...))和特定输出项,根据某些分组变量,必须为每个复制分析返回系数和 p 值( s) 在一个人的数据集中。

假设我有一个数据帧,我想在其中对数据帧中不同级别的因子“复制”进行某种分析data

使用broom+dplyr,我可以例如对此数据帧的每个子集进行方差分析(按复制分组)并使用“物种”一词保留 p 值

(我在这里使用了 10 个相同的数据子集作为示例)

我正在寻找一个更通用的函数“ Anovabygroup”,它将采用数据框、分组变量(这里replicate,但它也可以是几个分组变量的组合)、要运行的模型类型(例如在这个case 'aov(Sepal.Length ~ Species, data = .)',但它也可以是 lm、glm、lme、lmer 或 glmer 模型或由Anova()) 以及返回系数和 p 值的因子(可能使用选项“all”返回所有内容)作为参数(给定的任何其他选项都可以传递给对 Anova 的调用)。任何人都知道如何使用与上面使用的代码类似的代码来执行此操作,但可以概括为采用这些参数?我不知道该怎么做的主要事情是将模型(例如在这种情况下为'aov(Sepal.Length ~ Species,data = .)')作为参数传递并对其进行评估。或者它可能已经存在于某个包中?我认为这可能很有用,因为我总是发现自己一遍又一遍地编写这个任务......

PS 我使用了 github 版本的 broom 包,因为当前的 CRAN 版本似乎不能很好地处理 Anova 输出

0 投票
1 回答
407 浏览

r - 用扫帚将 t 检验结果合并到数据框中

我试图重复对两个向量进行采样100 次,xy在每个样本后计算一个 t 检验。然后我想使用broom包将结果组合到一个数据框中。我的尝试如下。然而,我所做的只是对相同的两个向量进行 100 次 t 检验。

0 投票
1 回答
1039 浏览

r - 将 kmeans 的集群/中心重新整理回原始数据帧

这里有一些数据。

现在我在每个组中做 k 意味着:

“kobjs”看起来像这样:

我想获取集群分配(以及理想情况下的中心点)并将它们附加到原始数据框。我以为你可以用扫帚来做到这一点:

但这以某种方式产生了 400X4 矩阵而不是 200X4。那是怎么发生的?如何获得我想要的行为?

EDIT1:通过 aosmith 的一些见解解决了我想要的方式。可能有一种方法可以让它更优雅(left_join 是否必要?)但这是我想要的行为:

0 投票
1 回答
276 浏览

r - dplyr 工作流程中带有 do() 的 broom::tidy() 失败,并带有一个 summaryDefault 对象

我想对summary.default()data.frame 中的变量进行数字汇总(在 base 包中)并在 broom 包中使用 tidy() ,但这不知何故失败了。

在这个例子中,我创建了一个 data.frame:

我加载plyr(1.8.3)、dplyr(0.4.2)和broom(0.3.7)(按此顺序)。仅供参考在 64 位 Windows 上运行 R 3.2.2,但我在 Unix 上遇到与 3.2.1 类似的问题。

我认为这会给我一个理想的输出:

但我收到一条错误消息:

我可以使用如下所示的plyr方法获得理想的结果:broom::tidy

但很明显,我问这个问题是为了解决在上述函数中使用tidy()(summaryDefault)问题的根源。do()

0 投票
3 回答
11170 浏览

r - ggplot2::fortify 的继任者

在最新版本中ggplot2?fortify返回:

描述

我现在推荐使用broom包,而不是使用这个函数, 它实现了更广泛的方法。fortify将来可能会被弃用。

broom软件包确实提供了许多替代方案(例如augment)。在什么情况下应该使用哪一种?

我对 SpatialPolygonsDataFrame 的替代方案特别fortify(spdf)感兴趣spdf

0 投票
1 回答
6896 浏览

r - 使用 broom::augment 函数获取响应规模的预测值

我正在拟合glm模型,并且可以使用拟合模型在哪里R获得响应尺度的预测值。我想知道如何使用包中的函数在响应范围内获得预测值。下面给出了我的最小工作示例。predict.glm(object=fm1, type="response")fm1augmentbroom

0 投票
0 回答
5001 浏览

r - dplyr::do / purrr::map 比较,有什么优势?

多亏了@drob,broom我在使用时习惯于对分组数据进行组合和dplyr::group_by执行操作。dplyr::do例如,根据齿轮系统为汽车拟合线性模型:

在阅读了@hadley 最近关于我的帖子后,tidyr v0.4.1 我发现使用nest()purrr::map()

与之前相同的示例:

顺序改变了,但结果是一样的。

鉴于两者在很大程度上解决了相同的用例,我想知道这两种方法是否都将得到支持。方法会成为规范的tidyverse方法吗?如果一个不被认为是规范的,哪些用例需要继续支持这两种方法?

根据我的短暂经验:

    • 进度条,在计算许多模型时很好。
    • @Axeman 评论:可以使用并行化multidplyr
    • broom::glance较小的对象,但如果我们想要fx.则需要重新运行。
  • 地图
    • 数据、子集和模型保存在一tbl_df
    • 很容易提取模型的另一个组件,即使unnest()需要一些时间。

如果您有一些见解/评论,将很高兴得到一些反馈。