如何在 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"
广告