如何在 R 中根據類別建立 ID 列?


如果我們在 R 資料框中有一個分類列,則它可以用來建立一個 ID 列,其中每個類別都將根據分類列中的類別定義其自己的 ID。

為此,我們需要使用 as.factor 和 as.numeric 函式讀取分類列,如下面的示例所示。

示例 1

以下程式碼片段建立了一個示例資料框 -

Group<-sample(c("Male","Female"),20,replace=TRUE)
Score<-sample(20:50,20)
df1<-data.frame(Group,Score)
df1

輸出

建立了以下資料框 -

   Group   Score
1  Female  20
2  Female  27
3  Female  29
4  Male    50
5  Male    42
6  Female  41
7  Male    32
8  Male    25
9  Female  21
10 Female  49
11 Female  31
12 Female  28
13 Female  36
14 Female  26
15 Male    43
16 Female  45
17 Male    23
18 Female  46
19 Male    48
20 Male    33

要基於 df1 中的 Group 建立 ID 列,請將以下程式碼新增到上述程式碼片段中 -

Group<-sample(c("Male","Female"),20,replace=TRUE)
Score<-sample(20:50,20)
df1<-data.frame(Group,Score)
df1$ID<-as.numeric(as.factor(df1$Group))
df1

輸出

如果您將所有上述程式碼片段作為單個程式執行,它將生成以下輸出 -

 Group    Score ID
1  Female  20   1
2  Female  27   1
3  Female  29   1
4  Male    50   2
5  Male    42   2
6  Female  41   1
7  Male    32   2
8  Male    25   2
9  Female  21   1
10 Female  49   1
11 Female  31   1
12 Female  28   1
13 Female  36   1
14 Female  26   1
15 Male    43   2
16 Female  45   1
17 Male    23   2
18 Female  46   1
19 Male    48   2
20 Male    33   2

示例 2

以下程式碼片段建立了一個示例資料框 -

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

輸出

建立了以下資料框 -

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

要基於 df2 中的 Class 建立 ID 列,請將以下程式碼新增到上述程式碼片段中 -

Class<-sample(c("First","Second","Third"),20,replace=TRUE)
Rank<-sample(1:10,20,replace=TRUE)
df2<-data.frame(Class,Rank)
df2$ID<-as.numeric(as.factor(df2$Class))
df2

輸出

如果您將所有上述程式碼片段作為單個程式執行,它將生成以下輸出 -

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

更新於: 2021-11-03

2K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告