重複の可能性:
R の 2 つの列の因子レベルの結合
私は R にかなり慣れていないので、再コーディング スクリプトをより効果的で「正しい」ものにしようとしています。フォーラムを検索してみましたが、どこにも行き着きませんでした。おそらく、間違った用語を使用して見逃している可能性があります。質問が既に投稿されている場合は、ご容赦ください。
1 つの因子変数にまとめたい 2 つの因子変数があります。これらは同じ調査に由来し、どちらも教育レベルを測定します。そもそも私が 2 つの変数を持っている理由は、不運な調査構造のためですが、それは重要ではありません。重要な点は、それらは相互に排他的であるということです (1 つしか存在できません)。
私のデータは次のようになります。
education education2
9th grade <NA>
9th grade <NA>
<NA> 9th grade
<NA> 10th grade
10th grade <NA>
11th grade <NA>
<NA> 9th grade
<NA> 11th grade
<NA> <NA>
私のスクリプトは次のようになります。
highest.edu <- vector(length=length(df$education))
a.grade <- which(df$education=="9th grade")
a.grade2 <- which(df$education2=="9th grade")
b.grade <- which(df$education=="10th grade")
b.grade2 <- which(df$education2=="10th grade")
c.grade <- which(df$education=="11th grade")
c.grade2 <- which(df$education=="11th grade")
highest.edu[a.grade] <- as.character(df$education)[a.grade]
highest.edu[a.grade2] <- as.character(df$education2)[a.grade2]
highest.edu[b.grade] <- as.character(df$education)[b.grade]
highest.edu[b.grade2] <- as.character(df$education2)[b.grade2]
highest.edu[c.grade] <- as.character(df$education)[c.grade]
highest.edu[c.grade2] <- as.character(df$education2)[c.grade2]
highest.edu <- factor(highest.edu)
highest.edu[highest.edu =="FALSE"] =NA
highest.edu <- factor(highest.edu)
もちろん、これは悪いことではありませんが、15 レベルの因子変数が 2 回以上ある場合は、より迅速な代替手段を探し始めます。
私はこのようなことを試しましたが、運がありません:
a.grade <- which(df$education=="9th grade" | df$education2=="9th grade")
b.grade <- which(df$education=="10th grade" | df$education=="10th grade")
c.grade <- which(df$education=="11th grade" | df$education2=="11th grade")
highest.edu[a.grade] <- as.character(df$education)
[a.grade]|as.character(df$education2)[a.grade]
highest.edu[b.grade] <- as.character(df$education)
[b.grade]|as.character(df$education2)[b.grade]
私にこれを与える: as.character(df$education)[9th grade] のエラー | as.character(df$education2)[9th grade]: 数値型、論理型、または複合型に対してのみ操作が可能です
これを克服する方法はありますか?
事前にご提案いただきありがとうございます
編集:
私が目指している結果はこれです:
highest.education
9th grade
9th grade
9th grade
10th grade
10th grade
11th grade
9th grade
11th grade
<NA>
投稿: 「R の 2 つの列の結合因子レベル」は別の結果をもたらすようです
再びありがとう