問題タブ [forcats]
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 - 因子レベルの変更 -- "f" の不明なレベル -- レベルを変更できません
多くの業界名を含む要素があります。それらを主要なカテゴリと業界に分解する必要があります。たとえば、回答者が好きなように応答できるようにしたため、レベルの数が膨大になりました (例: 金融サービス、金融サービス、銀行、金融)。これらのケースが一致しないため、追加のレベルとして出てくるので、forcats でそれらを折りたたもうとしています:
「金融サービス」が不明であるという警告が表示されます。ベクトルを呼び出すと、ベクトルが存在することがわかるので、これは非常にイライラします。呼び出しから正確な単語をコピーして貼り付け、書き直そうとしましたが、変更を妨げる隠し文字があるようです。
これらの値を適切に折りたたむにはどうすればよいですか?
「再評価」、たとえば最後のレベル「金融サービス」に行くと、不明な文字列であることがわかります。
dput(x$industry) のEDIT出力
編集それを理解しました。一部の用語には、終了後に余分なスペースがありました。たとえば、Prescreen$Industry を呼び出すと、「Banking」や「Corporate Finance」などの名前が多数返されますが、レベルの後にスペースがあることはわかりませんでした。バンキングは実際には.. R には表示されなかった、目に見えないスペースを持つ「バンキング」です。
列内で len 関数を実行できますか? もしそうなら、それはどのように機能しますか?PrescreenF$Industry("Banking")?
r - 複数の列内の因子に対するカスタム集計関数の使用
多数の項目を使用して調査を実施しました。各項目には、因子として格納された個別のカテゴリ応答オプションがあります。これらの列を効率的な方法で要約する必要があります。できれば が提供するような機能を使用しforcats::fct_count()ます。また、さまざまなアイテムがさまざまな回答者に表示されるため、変数ごとに提供された非 NA 回答の数を知る必要があります。きちんとした小さな要約データ フレームを作成する関数を作成しましたが、この関数を各列に沿って効率的に実行し、結果を単一のオブジェクト (ala ddply)に結合するのに苦労しています。
データを長い形式にしてから実行しようとしましsapply()たが、各変数のレベルが異なるという問題が邪魔をし続けているようです。データセットと要約関数の再現可能な例については、以下を参照してください。(以下に示すように) 各変数に対して関数を実行することもできますが、大量の個別の集計データ フレーム オブジェクトを作成する必要のない、より効率的な方法が必要であることはわかっています。ご協力いただきありがとうございます。gather()ddply()
r - Forcats::Fct_Collapse を異なる因子レベルの異なるデータフレームにまたがる関数で使用する方法
2 つの単純なデータフレーム (下部のコード) があり、「Animal」列を折りたたんで新しい再コード化された変数を作成したいと考えています。私は通常これを forcats::fct_collapse で行います。ただし、同じ変数を持つ多くの異なるデータフレームに fct_collapse を適用する関数を作成したいと考えています。たとえば、この場合、Df2 には「Rhino」がありません。
欠落している因子カテゴリが NA として返されるように (tiyverse を使用して) コードを変更する方法はありますか? この例では、それが「Rhino」であることはわかっていますが、実際のデータでは、他のレベルが欠落している可能性があります。forcats::fct_collapse 以外のオプションも受け入れますが、tidyverse の範囲内にとどまりたいと考えています。
サンプルデータ: