問題タブ [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 - 2回の繰り返し測定で広いものから長いものへ
整理されていないデータがあります。これには、2 つのネストされた反復メジャー (コンストラクト内にネストされた Q1/Q2) があります。ワイドフォーマットからロングフォーマットに移行したいと思います。
ここで、質問 1 と質問 2 (Q1 と Q2) は、同じ構造を対象とした 2 つの異なる質問です。Q1..Ask Q2..Ask
質問 1 と 2 のスコアも同様に、Ask コンストラクトを対象としています。Q1/Q2 を列 ( Question
) に、列ヘッダーの後半部分をtidyrを使用Construct
して列にするにはどうすればよいですか? Score
# MWE
# tidyr ではないロングフォーマットにするコード
# 希望する出力
r - 行内のランダム化された列でデータを溶かす
cjoint パッケージを使用することを期待して、コンジョイントの設計調査を行いました。cjoint パッケージのサンプル データは次のようにフォーマットされます。
「Case ID」は各回答者を表し、「contest_no」は各回答者が完了する個々のタスクを表します。この場合、各回答者は 5 つのタスク (タスク 1 から 3 を表示) を完了し、各タスクは 2 つのプロファイルを比較しています。各プロファイルは、属性「FeatEd」、「Featjob」、「FeatLang」によって異なります。選択したプロファイルは「Chosen_Immigrant」としてリストされ、はいまたはいいえのインジケーターが付きます。
私の現在のデータは次のとおりです。
- 回答者によって折りたたまれました。同じ行のすべてのタスク、プロファイル、および属性。
- 各行内の属性によってランダム化されます。
例えば:
F.1.1 は、タスク 1 の属性タイトルを表します。F.1.1.1 は、プロファイル 1 のタスク 1 の属性値です。F.1.2.1 (表示されていません) は、プロファイル 2 のタスク 1 の属性値です。F. 1.2. は、タスク 1、属性 2 のタイトルです。F.1.1.2 は、プロファイル 1 のタスク 2 の属性値です。以下同様...
私が理解しているように、データ フレームを cjoin の例のデータ フレームと一致させるには、次のことを行う必要があります。
- 属性の定義された順序で各行を並べ替えます。例: c("手頃な価格", "パーティー サポート",...)
- 行内の各属性の位置を使用して、各プロファイルに提供される関連レベルを取得します。F.1.1 の場合。「手頃な価格」、F.1.1.1 と F.1.2.1 の比較をつかみます。行ごとに並べてグループ化します。
- 行 ID が回答者とタスクによって実行され、列名が属性になり、セルが属性レベルを表すように、データ フレームをワイドからロングに変更します。
ステップ 3 は、reshape2 または tidyr のいずれかで解決できると思います。ただし、セル値を指定して行内の列でソートし、行内の関連する他のセルを取得することについての助けは、非常に高く評価されます。
r - POSIXデータはtidyrの問題を引き起こしますか?
私はこの質問に答えようとしており、tidyr を使用してデータを収集しています。これにより RStudio がクラッシュし、ターミナルから取得した場合もクラッシュします。
ターミナルのエラーから次のようになります。
これは私が実行しているスクリプトです:
POSIX でデータを収集することはできますか?
編集して追加sessionInfo()
r - R: tidyr、tidyr 関数をカスタム関数に組み込むときにスコープと環境を正しく取得する
解決策はコメントを参照してください、「Rのバージョンを更新してサーバーを再起動した後、この問題はなくなりました。二度と戻らないかもしれません。スコープまたはローカル/グローバル環境に問題はなく、バグがいくつかありました。指摘してくれた@MrFlickに感謝します私を正しい方向に。」
tidyr (および plyr、dplyr、およびその他の Hadleyverse パッケージ) をカスタム関数に組み込むのに役立つように、人々が説明できるかどうか (または、新しいプログラマーに優しいドキュメントまたはテキストを指摘するかどうか) に興味があります。以下の問題には、私が完全に把握していないスコープ/ローカル環境の問題が明らかに含まれています。
前もって感謝します!
再現可能な例
カスタム関数の外では、tidyr を使用しています。
どちらも次を返します。
これらのタイプの操作は、より大規模で複雑なカスタム関数では明らかに非常に便利ですが、次の問題が発生します。
foo2 の do.call バージョンは、同様の最近の stackoverflow 投稿に動機付けられていますが、最終的にはそれほど役に立ちませんでした。
悪い回避策
私が使ってきた恐ろしい解決策の 1 つは、グローバル変数を作成することです。
または、追加の引数をカスタム関数に渡します。
しかし、私はこの質問を、私やこの問題に遭遇した他の人たちへの教訓として利用したいと思っています.
から得られる結果sessionInfo()
r - ワイドからロングまで整頓?
tidyr を使用してワイド データをロング データに変換する方法を学ぼうとしています。私のデータが次のようになっているとします。
私はこのように私を変換したい:
収集は使用する必要がある機能だと思いますが、ヘルプ ファイルがわかりません。これは私が今持っているものです:
エラーは「エラー: 列の指定が無効です」と表示されます
ありがとう!
r - 整理されたデータ: 'count' 変数に基づいて、各個人の行を作成します
以下に示すデータフレームdf1の例と非常によく似たフォーマットのデータフレームがあります。3 つの列があります。2 つのカテゴリ変数と、特定の組み合わせを持つオブジェクトの量を指定する「カウント」列です。
このデータ フレームを、例のデータ フレームdf2に示されている形式に移動したいと考えています。「カウント」列の代わりに、各オブジェクトは単純に別の行に表示されます。
私はdplyrおよびtidyrパッケージを試してみましたが、まだRに精通していません。私が望む機能を実行するための良い方法は何ですか?