我有包含 200 多种语言的语言数据,其中一些缺失值编码为 ''(0 长度字符)。
我想压缩它factor
来编码主要语言,而所有其他语言都被编码为“其他语言”,而“”被编码为“(缺失)”,出现在字符串的末尾。
我的计划是这样的:
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 不喜欢多对一的因子格式。如何聚合到一个类别中?
编辑:
我决定了一个好的解决方案,lanfmt
如上所述使用如下:
table(lanfmt$lab[match(lang, lanfmt$lev)])
它不是那么优雅,但它在紧要关头工作。