200 を超える言語を含む言語データがあり、いくつかの欠損値が '' (長さ 0 文字) としてコード化されています。
これを圧縮してfactor
主な言語をコーディングし、他のすべての言語を「他の言語」として圧縮したいと思いますが、「」は文字列の最後に表示される「(missing)」としてコーディングされます。
私の計画はこれです:
lanfmt <- list(
lev = c(prime <- c('English', 'Russian', 'Urdu'), diff <- setdiff(levels(lan), c(prime, '')), ''),
lab = c(prime, diff, '')
)
table(factor(lan, lanfmt$levels, lanfmt$labels)
しかし、R は因子の多対 1 形式を好みません。1 つのカテゴリに集約するにはどうすればよいですか?
編集:
lanfmt
上記のように使用するのは次のとおりです。
table(lanfmt$lab[match(lang, lanfmt$lev)])
それほどエレガントではありませんが、ピンチで機能します。