問題タブ [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.
r - オブジェクトからデータフレームを渡したり返したりするR dplyr
私は R の初心者で、dplyr を使用しており、カスタム関数を R スクリプトに取り込もうとしています。
ss というデータ フレームがあり、それにフィルターを適用したいのですが、他のスクリプトと共有できるように、フィルターを別の関数に分離したいと考えています。
コード例:
ss2 の現在の状態を apply_filters 関数に送信し、結果のデータを取得して要約できるようにしたいと考えています。
エラーが発生するため、これは機能しません。
エラー: 引数の「タイプ」(文字) が無効です
何か不足していますか?
r - モデルを dplyr と broom::glance で比較する: エラーが発生した場合の続行方法は?
R の lme4 パッケージを使用して、データセットの各変数を単変量 glmer モデルとして実行したいと考えています。dplyr/tidyr パッケージでデータを準備し、broom パッケージで各モデルの結果を整理したいと考えています (つまり、do (glance(glmer ...)。そのフレームワーク内にとどまっている助けを最も感謝します.Rはそれほど得意ではありませんが、エラーをスローし、データと同じ構造を持つデータセットを生成できました.' m を使用:
最後の変数はエラーを生成するため、出力はありません。私が望むのは、これが発生した場合に出力に NA 値を生成するか、その変数をスキップすることです。「try」を使用して、トラブルメーカー変数を吹き飛ばしてみました。
それは行いますが、「try-error」を data.frame に強制できないため、出力は生成されません。残念ながらトライハーダー機能はありません。私には理にかなっていますが、コンピューターには意味がない if ステートメントをいくつか試しました。私はそれを正しく行っていないと確信していますが、たとえば次のように使用する場合:
範囲外の添字エラーが発生します。ご提供いただけるご意見をお寄せいただき、誠にありがとうございます。
r - ほうきの結果に glm 係数のカテゴリの列を追加する
ほうきパッケージの関数の結果に列を追加して、列という用語を引数でtidy
使用された元の名前と引数の列の両方に関連付ける方法はありますか。formula
data
たとえば、次を実行すると、次のようになります。
私が探しているのは次のようなものです:
この新しい列の最初の行が空の場合、Intercept
または1
. 数式に渡された元の変数名に列という用語を一致させることができる何かが必要ですか?
編集
as.factor
数式での使用に依存しない場合は良いでしょう。たとえば、次のように機能します。
r - broom と dplyr を使用して、グループ化されたデータをグループ化されたモデルに適用するにはどうすればよいですか?
mtcars データ セットの wt に gpm (ガロン/マイル = 1/mpg) のモデルを当てはめるのと同じことをしたいと思います。それは簡単に思えます:
これにより、予想どおり、6 行の行単位のデータ フレームが得られます。
このグラフは、6 つのグループがあることを示しています。
適合した出力を取得するためにaugment()を使用できます。
これにより、期待どおり、mtcars2 の各行に 1 つずつ、合計 32 行が得られます。
ここでの課題: newdata を使用して適合出力を取得したいと思います。ここで、wt を cyl/4 だけインクリメントしました。
これにより、lm1 %>%augment(fit) と同じサイズのデータ フレームが生成されると予想されます: newdata の各行に対して 1 行。
不運にも、
192 行 (= 6 x 32) のデータ フレームが得られ、明らかに各モデルが newdata の各行に適合します。
他の場所を読んで、group_by と行単位のデータ フレームに互換性がないことがわかったので、lm1 はグループ化されておらず、augment はモデルと newdata を関連付けることができません。これを可能にする別のデザインパターンはありますか? 上記の試みのようにシンプルで透過的であればいいのですが、それが機能することがより重要です。
ここに私のsessionInfo()があります:
編集:
@aosmith: 私はあなたの 2 番目のオプションを検討してきましたが、気に入っています。ただし、実際のデータで試してみると、mutate コマンドに問題があります。「エラー: 拡張は、クラス リストのデータを処理する方法がわかりません」が返されます。
私の実際のコードは次のようになります。
あなたのもののように見えると言うのは、ID (chr)、attr1 (dbl)、cyl (dbl)、am (chr)、fit (list)、および data (リスト)。cyl、am (dbl)、fit、およびデータがあります。am を dbl に変更しましたが、役に立ちませんでした。
違いは、このサンプルには 3 (ID ... mtcars の行名に似ています) x 2 (cyl) x 2 (am) 単位 (各サンプルには 12 の測定値があります) があるのに対し、mtcars の例には 3 があることです。 (cyl) x 2 (am) セル x セルごとの車の種類の乱数。私の分析では、ID 値を確認する必要がありますが、newdata はすべてのユニットに等しく適用されます。それが役立つ場合は、テストで各車に適用される向かい風の速度と考えてください。それは、クラスリストのデータを処理できないというaugmentの苦情の原因を示唆していますか?
EDIT:IDをnewdata(full = TRUEを使用)とマージすると、最後の問題が解決しました。私は現在、最初に提案されたソリューションを使用しています。