在 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"