数値に変換したいリカートアイテムに対して90個の応答を持つデータセットがあります。それは、ここでの例のように構成されていますリッカートデータを数値データに変換する
q6 <- c("Daily", "Never", "Often", "Very Often", "Daily")
q7 <- c("Never", "Never", "Often", "Often", "Daily")
q23 <- c("Daily", "Often", "Never", "Never", "Neutral")
q17 <- c("Important", "Important", "Very Important", "Neutral", "Not Important")
example <- cbind(q6, q7, q17, q23)
各質問への回答は多少異なるが、いずれかのメインに強く強くデイリーは決してに、または重要でないと重要、同意する同意しないの範囲内にあります。 90の質問に対する回答のそれぞれは、別々の列にあります(q1> q90と表示されます)。私は、テキスト応答に対応する数値で応答セット用の新しい列を作成したいと考えています(中立(0)を介して強い同意(3)から強く反対(-3))。そう
のように私は、既存のデータフレームに追加することができ、既存のQ6列のテキスト応答と一致するN6と呼ばれる新しい変数を生成し、以下のコードで、これまで得ることができましたcbindを使用します。私の質問は、応答ごとに以下のコードを実行しなくても(つまり、q6からq7、q8から、など)、データフレーム全体で90個の質問を自動化する方法です。
n6 <- ifelse(example$q6=="Daily", 3,
ifelse(h16$q6=="",0,
ifelse(h16$q6=="Very Often", 2,
ifelse(h16$q6=="Often", 1,
ifelse(h16$q6=="Neither Rarely nor Often", 0,
ifelse(h16$q6=="Rarely", -1,
ifelse(h16$q6=="Very Rarely", -2,
ifelse(h16$q6=="Never", -3,5
))))))))
さらに、列q6:q12、q23:30には、上記の例のように、毎日から無応答の範囲の応答があります。カラムq17:q22には、重要でないものから非常に重要なものまでの回答があります。カラムq49:q90には、「強く同意する」から「強く同意しない」の範囲の回答があります。私はn6:n16、n23:30という名前の列に数値を持つ新しいデータフレームを生成する方法で、関連する列(例:q6:12、q23:q30)上で以下のコードを実行するよりスマートな方法を見つけようとしていますコードを90回以下で実行する必要はありません。
これは問題の明確な説明です。
ありがとうございます。
'?factor'を見てください。順序付き引数を使用して、必要に応じて順序付き要素を取得することができます。 – lmo
縮尺が不明です。可能な回答とそれに対応する値のセットは何ですか? –
また、あなたは 'h16'と' example'の検索で異なるオブジェクトを使いました。 –