要从因子列中提取因子水平,我们可以简单地使用水平函数。例如,如果我们有一个名为df的数据框,其中包含用x定义的因子列,则可以使用命令level(df $x)提取x中因子水平的水平。如果我们有大量关卡,此提取将很有帮助。
考虑以下数据帧-
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"
如果列值未记录为因子水平,但它们代表它们,那么我们需要使用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"