問題タブ [tidyr]
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 - row.namesを使用せずにRでデータフレームを再結合する
分析用の従属 Y 変数、独立 X 変数、およびいくつかの "Z" 変数を含む data.frame (または data_frame) から始めます。これは、モデリングの演習には不要な余分な列です。
私がやりたいことは次のとおりです。
- Z 変数なしで分析データ セットを作成します。
- このデータ セットをランダムなトレーニング セットとテスト セットに分割します。
- 私の最高のモデルを見つけてください。
- このモデルを使用してトレーニング セットとテスト セットの両方を予測します。
- 行単位でトレーニング セットとテスト セットを再結合します。そして最後に
- これらのデータを列ごとに Z 変数と再結合します。
もちろん、問題が発生するのは最後のステップです。再結合されたトレーニング セットとテスト セットの行が元のデータ セットの行と一致していることを確認するにはどうすればよいでしょうか。元のセットのrow.names変数を使用しようとするかもしれませんが、これはエラーが発生しやすいクラッジであるというHadleyに同意します(彼ではなく私の言葉です)-他のすべてのデータ列とは異なる扱いを受ける特別な列があるのはなぜですか? ?
1 つの代替手段は、各行を一意に識別する ID 列を作成し、トレーニング セットとテスト セットに分割するときにこの列を保持することです (もちろん、すべてのモデリング式から除外します)。これも不器用に思え、すべての数式が読みにくくなります。
これは解決済みの問題に違いありません。これをどのように処理しているか教えてもらえますか? 特に plyr/dplyr/tidyr パッケージ フレームワークを使用していますか?
r - R: タグの幅広いリストから接続の長いリストまで
1 または 0 で示されるタグの個々の設定を持つデータ フレームがあります。
(私のデータには 5 つよりも多くのタグがあります)
ネットワーク ダイアグラムの場合、ワイド形式のデータを、行内の tag=1 の各ペア間の発生の長い形式のリストに変換する方法を探しています。上記の例では、次のようになります。
これに を使用したかったtidyr
のgather()
ですが、列のペアに使用する方法がわかりません。ペアごとに新しい変数を作成してそれらを収集することもできますが、タグのリストが長い場合、これは非現実的になります。これを行うよりエレガントな方法はありますか?それとも特定の機能ですか?
r - tidyr での Spread との混同
次のようなデータフレームがあります。
データフレームのヘッドは次のようになります。
私がやりたいのは、このフォーマットをワイドフォーマットに変換することで、spread
関数を で使用しようとしましたtidyr
。
関数を使用する前に、spread
行を削除するために新しい変数を作成しましたduplication error
。
さて、私はspread
次のように関数を使用しました:
それはうまくいくようですが、私が期待したものとはまったく異なります。はsample_date
POSIXct オブジェクトであり、変換されたときにhour, minute and second
表示されないため、出力が乱雑に見えます。
列名は正しいようですが、値は正しくありません。日付ごとに、 の値がありますconductivity, dissolved oxygen, salinity etc..
。この問題を解決するために何をする必要があるか教えてください。
アップデート:
新しいデータが更新されました
次に、Akrun が推奨する式を使用しました。
大規模なデータセットを投稿して申し訳ありません。
私が得た出力は次のとおりです。
r - 列名が数値の場合、gather 関数 (tidyr パッケージ) を使用する方法は?
tidyr パッケージの gather 関数を使用して、名前が数字である列を収集する方法はありますか? 例えば:
r - rでのワイドデータフレームの難しさ
私は、単一の入院中および異なる入院中の両方で異なる診断 (DX) を受けたケース (ID) を含むデータフレーム (次のとおり) を持っています。このデータフレームを広げて、すべての個別の入院ですべての診断が別々の列に表示されるようにします。関数を試しdplyr
spread
ましたが、正しい結果が得られません。なにか提案を?
予想される出力は次のようになります。
r - R: 周期関数で data.table を作成
articleID、期間、および需要の列 (articleID および period をキーとして) を含む整然とした形式の data.table を作成したいと思います。要求は、別の data.frame (params) からの入力データを使用したランダム関数の対象となります。これは、実行時にさまざまな数の期間に対して作成されます。
これを「整頓されていない」形式で行うのは簡単です。
この作成を行うための「きちんとした」方法はありますか? rgamma() を複製する必要がありますが、対応する記事のパラメーターを使用する方法がわかりません。data.table からの Cross Join から始めてみました。
しかし、作成時に rgamma を dt[,demand] に直接かつ正しく渡す方法も、醜い for ループを使用せずに値を変更する方法もわかりません。tidyr パッケージの gather() の使用も検討しましたが、私が見る限り、for ループも使用する必要があります。
現在のユースケースで data.frame と data.table のどちらを使用するかは、私にとってはあまり重要ではありません。いずれか(または両方!)のソリューションをいただければ幸いです。
r - データ フレームの転置
ハッピーウィークエンド。
このブログ投稿の結果を R で複製しようとしています。 を使用せずt
に、できればtidyr
またはを使用してデータを転置する方法を探していreshape
ます。以下の例でmetadata
は、 を転置して得られdata
ます。
それは私が望むものを達成しますが、少し下手だと思います。データ フレームを転置するための効率的なワークフローはありますか?
データの出力
r - 2 つの実験のデータをどのように比較しますか
私はしばしば、2 つの異なるシナリオ/テスト/期間の下でパーセンテージの変化を測定しようとしています。
データセットの例:
次に、次のような恐ろしいことを書きます。
ただし、上記のソリューションは、測定可能な数が増え始めるとまったく拡張できません。さらに、コードは順序に関して非常に脆弱です。
私はRに非常に慣れていません。これが、問題に対するよく知られた(よりスマートな)解決策がある十分に一般的なパターンであることを望んでいました。
ヘルプ/ポインターをいただければ幸いです。