如何在 R 数据框中提取因子列的因子水平?


要提取因子列的因子水平,我们可以简单地使用 levels 函数。例如,如果我们有一个名为 df 的数据框,其中包含一个用 x 定义的因子列,那么可以使用命令 levels(df$x) 提取 x 中因子水平的水平。如果我们有大量水平,则此提取非常有用。

示例 1

 在线演示

考虑以下数据框:

x1<−factor(sample(letters[1:3],20,replace=TRUE))
y1<−rnorm(20,5,0.31)
df1<−data.frame(x1,y1)
df1

输出

x1 y1
1 a 4.480255
2 b 4.865971
3 a 5.278760
4 a 5.208462
5 c 4.815111
6 a 5.116731
7 a 5.278687
8 b 5.832620
9 c 5.182383
10 a 4.741525
11 b 4.645954
12 c 4.972552
13 a 5.515956
14 c 4.951365
15 b 5.214277
16 c 5.444890
17 b 4.590310
18 a 4.949908
19 a 4.858476
20 c 5.179366

提取 x1 的因子水平:

示例

levels(df1$x1)

输出

[1] "a" "b" "c"

示例 2

 在线演示

如果列值未记录为因子水平,但它们表示它们,那么我们需要使用 as.factor 和列,如下面的示例所示:

x2<−sample(c("Hot","Cold","Warm"),20,replace=TRUE)
y2<−rpois(20,30)
df2<−data.frame(x2,y2)
df2

输出

x2 y2
1 Warm 29
2 Hot 23
3 Cold 26
4 Hot 30
5 Hot 36
6 Hot 25
7 Hot 34
8 Hot 24
9 Warm 29
10 Hot 34
11 Warm 25
12 Cold 26
13 Hot 30
14 Cold 31
15 Warm 28
16 Cold 25
17 Cold 32
18 Hot 25
19 Hot 32
20 Cold 28

输出

levels(df2$x2)

输出

NULL

示例

levels(factor(df2$x2))

输出

[1] "Cold" "Hot" "Warm"

更新于: 2021年2月9日

11K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告