問題タブ [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 投票する
0 に答える
1005 参照

r - dplyr+broom による条件付き nls フィッティング

私は dplyr とほうきの組み合わせを使用しており、データ グループ内の条件に応じて回帰モデルを当てはめようとしています。最後に、グループごとに回帰係数を抽出したいと思います。

これまでのところ、すべてのグループで同じフィッティング結果が得られています (各グループは文字で区切られていますa:f)。それが主な問題です。

適合条件は次のように記述できます。 direc=Northおよび if V<J1do は方程式に適合しexp((-t_pw)/f0*exp(-del1*(1-V/J1)^2))ます else ifdirec=SouthおよびV>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(...)またはlm(...)またはまたはglm(...)などglmer(...))と、グループ化変数( s) 自分のデータセット内。

データフレーム内のさまざまなレベルの因子「複製」に対して特定の分析を実行したいデータフレームがあるとしますdata

を使用してbroom+dplyr、たとえば、このデータフレームの各サブセットに対して anova を実行し (レプリケートによるグループ化)、次を使用して用語「種」の 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現在のCRANバージョンはAnova出力をうまく処理していないようなので、ほうきパッケージのgithubバージョンを使用しました

0 投票する
1 に答える
1039 参照

r - kmeans のクラスター/中心を元のデータ フレームに戻すラングリング

ここにいくつかのデータがあります。

ここで、各グループ内で k 平均を実行します。

「kobjs」は次のようになります。

クラスターの割り当て (および、理想的には中心点) を取得して、元のデータ フレームに追加したいと思います。これを行うにはほうきを使用できると思いました:

しかし、それはどういうわけか、200X4 ではなく 400X4 マトリックスを生成します。どうしてこうなりました?必要な動作を取得するにはどうすればよいですか?

EDIT1: aosmith からの洞察により、私が望んでいた方法で解決しました。おそらくよりエレガントにする方法があります (left_join は必要ですか?) が、それは私が望む動作です:

0 投票する
1 に答える
276 参照

r - dplyr ワークフローで do() を使用した broom::tidy() が summaryDefault オブジェクトで失敗する

summary.default()data.frame の変数に対して(基本パッケージで) 数値集計を実行し、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 投票する
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が必要な場合は再実行する必要があります。
  • 地図
    • データ、サブセット、およびモデルが 1 つに保持されますtbl_df
    • unnest()少し時間がかかる場合でも、モデルの別のコンポーネントを簡単に抽出できます。

洞察やコメントがあれば、喜んでフィードバックをお寄せください。