在 R 数据框中提取因子列的特定水平。


要从 R 数据框中的因子列中提取特定水平,我们可以使用 levels 函数以及因子的编号。

例如,如果我们有一个名为 df 的数据框,其中包含一个因子列,例如 F,那么我们可以使用以下命令找到 F 中的第三个水平:

levels(df$F)[2]

示例 1

以下代码片段创建了一个示例数据框:

Grp<-factor(sample(LETTERS[1:4],20,replace=TRUE))
df1<-data.frame(Grp)
df1

创建了以下数据框

  Grp
 1 D
 2 C
 3 C
 4 D
 5 B
 6 C
 7 D
 8 A
 9 B
10 C
11 B
12 C
13 B
14 B
15 C
16 A
17 C
18 B
19 B
20 D

要在上面创建的数据框中找到 df1 的 Grp 列中的第二个水平,请将以下代码添加到上述代码片段中:

Grp<-factor(sample(LETTERS[1:4],20,replace=TRUE))
df1<-data.frame(Grp)
levels(df1$Grp)[2]

如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:

[1] "B"

要在上面创建的数据框中找到 df1 的 Grp 列中的第四个水平,请将以下代码添加到上述代码片段中:

Grp<-factor(sample(LETTERS[1:4],20,replace=TRUE))
df1<-data.frame(Grp)
levels(df1$Grp)[4]

如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:

[1] "D"

示例 2

以下代码片段创建了一个示例数据框:

Class<-factor(sample(c("First","Second","Third"),20,replace=TRUE))
df2<-data.frame(Class)
df2

创建了以下数据框

   Class
 1 Third
 2 Second
 3 First
 4 Third
 5 Third
 6 Third
 7 First
 8 Third
 9 Third
10 Second
11 Third
12 First
13 Second
14 First
15 First
16 Third
17 First
18 First
19 Third
20 Second

要在上面创建的数据框中找到 df2 的 Class 列中的第二个水平,请将以下代码添加到上述代码片段中:

Class<-factor(sample(c("First","Second","Third"),20,replace=TRUE))
df2<-data.frame(Class)
levels(df2$Class)[2]

如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:

[1] "Second"

要在上面创建的数据框中找到 df2 的 Class 列中的第一个水平,请将以下代码添加到上述代码片段中:

Class<-factor(sample(c("First","Second","Third"),20,replace=TRUE))
df2<-data.frame(Class)
levels(df2$Class)[1]

如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:

[1] "First"

要在上面创建的数据框中找到 df2 的 Class 列中的第三个水平,请将以下代码添加到上述代码片段中:

Class<-factor(sample(c("First","Second","Third"),20,replace=TRUE))
df2<-data.frame(Class)
levels(df2$Class)[3]

如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:

[1] "Third"

示例 3

以下代码片段创建了一个示例数据框:

Category<-factor(sample(c("Low","Medium","High"),20,replace=TRUE))
df3<-data.frame(Category)
df3

创建了以下数据框

   Category
 1 Low
 2 Medium
 3 Medium
 4 Medium
 5 Low
 6 High
 7 Low
 8 Medium
 9 Low
10 High
11 High
12 Medium
13 High
14 Medium
15 Medium
16 High
17 Low
18 High
19 High
20 Low

水平将按字母顺序排序,因此水平将基于第一个字母提取。

要在上面创建的数据框中找到 df3 的 Category 列中的第一个水平,请将以下代码添加到上述代码片段中:

Category<-factor(sample(c("Low","Medium","High"),20,replace=TRUE))
df3<-data.frame(Category)
levels(df3$Category)[1]

如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:

[1] "High"

要在上面创建的数据框中找到 df3 的 Category 列中的第二个水平,请将以下代码添加到上述代码片段中:

Category<-factor(sample(c("Low","Medium","High"),20,replace=TRUE))
df3<-data.frame(Category)
levels(df3$Category)[2]

如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:

[1] "Low"

要在上面创建的数据框中找到 df3 的 Category 列中的第三个水平,请将以下代码添加到上述代码片段中:

Category<-factor(sample(c("Low","Medium","High"),20,replace=TRUE))
df3<-data.frame(Category)
levels(df3$Category)[3]

如果您将以上所有代码片段作为一个程序执行,则会生成以下输出:

[1] "Medium"

更新于:2021-11-09

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告