問題タブ [dummy-variable]
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に指定された因子レベルを回帰の参照として使用させるにはどうすればよいですか?
回帰でバイナリ説明変数を使用する場合、R に特定のレベルを参照として使用するように指示するにはどうすればよいですか?
デフォルトでいくつかのレベルを使用しているだけです。
とb {0, 1, 2, 3, 4}
。R で使用される 0 の代わりに 3 を使用したいとします。
r - 文字列列を複数のダミー変数に分割する
R の data.table パッケージの比較的経験の浅いユーザーとして、1 つのテキスト列を多数のインジケーター列 (ダミー変数) に処理しようとしてきました。各列の 1 は、特定の部分文字列が文字列列内にあります。たとえば、これを処理したい:
これに:
処理を行う方法を理解しましたが、実行に必要以上に時間がかかり、コードが非効率的であると思われます。ダミー データを含む私のコードの再現可能なバージョンを以下に示します。実際のデータでは、検索する部分文字列が 2000 を超えており、各部分文字列の長さは約 30 文字で、最大数百万行になる可能性があることに注意してください。必要に応じて、並列化して問題に多くのリソースを投入できますが、コードを可能な限り最適化したいと考えています。Rprof を実行してみましたが、(私にとって) 明らかな改善は見られませんでした。
編集
素晴らしい回答をありがとう - すべて私の方法よりもはるかに優れています。以下のいくつかの速度テストの結果は、私自身のコードで 0L と 1L を使用し、結果をメソッドごとに別々のテーブルに格納し、順序を標準化するために、各関数にわずかな変更を加えたものです。これらは単一の速度テストからの経過時間 (多くのテストの中央値ではなく) ですが、大規模な実行にはそれぞれ長い時間がかかります。
明らかに、GeekTrader のアプローチの修正版が最適です。各ステップが何をしているのかについてはまだ少し漠然としていますが、暇なときにそれを調べることができます. 元の質問の範囲外ではありますが、GeekTrader と Ricardo Saporta の方法がより効率的に行われていることを誰かが説明したい場合は、私とおそらく将来このページにアクセスする人に感謝します. 一部のメソッドが他のメソッドよりも優れている理由を理解することに特に興味があります。
*****編集#2 *****
このコメントで GeekTrader の回答を編集しようとしましたが、うまくいかないようです。GT3 関数に 2 つの非常に小さな変更を加えました。a) 列を並べ替えます。これにより、少し時間が追加されます。b) 0 と 1 が 0L と 1L に置き換えられます。これにより、処理が少し速くなります。結果の関数 GT4 を呼び出します。上の表を編集して、さまざまなテーブル サイズでの GT4 の時間を追加しました。明らかに勝者であり、直感的であるという追加の利点があります.
r - 相互に排他的なダミー変数からのカテゴリ変数の作成
私の質問は、複数のダミー変数を単一のカテゴリ変数に結合することに関する以前に回答された質問の詳細に関するものです。
前の質問では、カテゴリ変数は、相互に排他的ではないダミー変数から作成されました。interaction
私の場合、ダミー変数は相互に排他的です。これは、2X2 被験者間要因計画 (ここでは扱っていない被験者内コンポーネントも含む) の交差実験条件を表しているためです。する必要があります。
たとえば、私のデータは次のようになります。
ここで、ACROSS のさまざまなタイプの条件を組み合わせたカテゴリ変数を作成したいと思います。たとえば、状態 A と B の値を持つ人は 1 つのカテゴリ変数でコード化され、状態 C と D の値を持つ人はコード化される可能性があります。
現在、私はifelse()
ステートメントを使用してこれを行っていますが、これは非常に混乱しています (常に機能するとは限りません)。助けてください!おそらく、非常に明白な「より簡単な方法」がいくつかあります。
編集:
ifelse
私が使用しているコマンドの種類は次のとおりです。
実際には、毎回 6 ~ 8 列を組み合わせているため、より洗練されたソリューションが大いに役立ちます。
r - R の class.ind() 関数は何を行い、いつ使用しますか?
R のドキュメントにはnnet::class.ind()
、指定された要素からクラス インジケーター関数を生成すると書かれています。
因子をバイナリ分類に変換しますか?
いつ、なぜこの関数を使用するのですか? いくつか例を教えてください。
どんな助けでも感謝します。ありがとうございました。
statistics - Stataで少なくとも2つのダミー変数== 1の場合、変数= 1を生成する方法は?
少なくとも 2 つ以上 (7 つのうち) のダミー変数も == 1 の場合に =1 のダミー変数を生成しようとしています。これを行う効率的な方法を教えてもらえますか?
python - ダミー変数を作成するパンダ最適化方法?
特定の列と条件に基づいて、新しいダミー変数を作成しています。以下は私が取り組んでいるコードです。それは機能しますが、私がやりたいことには遅すぎます。パンダでダミーを作成するより高速でベクトル化された方法はありますか? 具体的には、私の例によると?
パンダで get_dummies 関数を調べましたが、ここで行っていることとは少し異なるようです。私は間違っているかもしれませんが、誰かが get_dummies をこの例で動作させる方法を持っているなら、それも受け入れられる答えです.
編集:ここには2つの良い答えがあります。一見すると、どちらも同じように高速に見えるので (少なくとも同程度)、1 つだけ受け入れました。誰かがより深刻なプロファイリングを行いたい場合は、喜んで回答の選択を修正します。
r - 2つの要因に基づいてダミー変数を作成し、新しいデータフレームに貼り付けます
自分で再現できるようにすべてのデータを送信します
私はこの 10 x 2 行列を持っています。NIT と Esp はどちらも因子変数です。
各文字は件名であり、各数字は特定の件名の特徴です。例: 被験者 A は特性 1 と 2 を持ち、被験者 B は特性 1、5、4、
特性 1,2,3,4,5 ごとにダミー変数を作成したいと思います。A が特性 2 を持っている場合は 1 を生成し、そうでない場合は 0 を生成します。
私はこの解決策を試しました
これまでのところ、これは私が管理したものです
それにもかかわらず、これは私が本当に欲しいマトリックスです。
最終的なマトリックスは 6 行 x 5 列で、次のようになります。