在 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+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.