【发布时间】:2021-10-02 17:48:10
【问题描述】:
如何列出数据中存在的因子水平?
让我们初始化数据:
df <- data.frame(
v1 = c( 'b', 'c', 'a', NA ),
v2 = c( 2, 1, 3, 1 )
)
df$v1 <- factor(
df$v1,
levels = c( 'a', 'b', 'c', 'd' ),
ordered = TRUE
)
现在,levels() 给出了所有级别,包括数据中未找到的级别:
> levels( df$v1 )
[1] "a" "b" "c" "d"
而unique() 给出了所有唯一值,包括NA:
> unique( df$v1 )
[1] b c a <NA>
Levels: a < b < c < d
我正在寻找的内容是:
> levels( df$v1, indata = TRUE )
[1] "a" "b" "c"
【问题讨论】:
-
见
?droplevels -
如
levels(droplevels(df$v1))显示非零级别或df$v1 <- droplevels(df$v1)将它们从数据框中删除。 -
@dcarlson,
levels( droplevels( df$v1 ) )给出了我想要的结果并且很简单。谢谢!请把它作为一个答案,我会接受它。 -
看来有人抢先了。