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

要从因子列中提取因子水平,我们可以简单地使用水平函数。例如,如果我们有一个名为df的数据框,其中包含用x定义的因子列,则可以使用命令level(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"