一段时间后我将返回 R,以下内容让我感到困惑:
我想建立一个因子值在因子级别列表中的位置列表。
例子:
> data = c("a", "b", "a","a","c")
> fdata = factor(data)
> fdata
[1] a b a a c
Levels: a b c
> fdata$lvl_idx <- ????
这样:
> fdata$lvl_idx
[1] 1 2 1 1 3
感谢任何提示或技巧。
最佳答案
如果您将一个因子转换为整数,您将获得级别中的位置:
as.integer(fdata)
## [1] 1 2 1 1 3
在某些情况下,这是违反直觉的:
f <- factor(2:4)
f
## [1] 2 3 4
## Levels: 2 3 4
as.integer(f)
## [1] 1 2 3
此外,如果您静默地强制转换为整数,例如通过使用因子作为向量索引:
LETTERS[2:4]
## [1] "B" "C" "D"
LETTERS[f]
## [1] "A" "B" "C"
转换为
character
在转换为 integer
之前给出期望值。见 ?factor
详情。
关于r - 提取因子值在级别中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20624209/