如何在 R 中將列值轉換為列名?


要將列值轉換為列名,我們可以使用 reshape2 包的 dcast 函式。例如,如果我們有一個名為 df 的資料框,其中包含兩列,例如 x 和 y,其中 x 是分類的,y 是數值的。現在,如果我們想將 x 中的類別轉換為列名,則可以將其作為 dcast(df,y~x) 來完成。

示例 1

考慮以下資料框 -

即時演示

> x1<-sample(c("A","B","C"),20,replace=TRUE)
> x2<-rpois(20,5)
> df1<-data.frame(x1,x2)
> df1

輸出

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

載入 reshape2 包並將 x1 中的值轉換為列名 -

> library(reshape2)
> dcast(df1,x2~x1)

使用 x2 作為值列:使用 value.var 覆蓋。

聚合函式缺失:預設為長度

輸出

   x2 A B C
1  1 0 0 1
2  2 1 0 1
3  3 0 1 2
4  4 1 3 0
5  5 3 0 1
6  6 2 0 1
7  7 1 1 0
8  8 1 0 0

示例 2

即時演示

> Gender<-sample(c("Male","Female"),20,replace=TRUE)
> Rate<-rpois(20,3)
> df2<-data.frame(Gender,Rate)
> df2

輸出

   Gender Rate
1    Male    2
2    Male    5
3  Female    6
4  Female    3
5    Male    5
6    Male    1
7    Male    5
8    Male    2
9  Female    3
10 Female    2
11   Male    2
12   Male    3
13 Female    6
14   Male    0
15   Male    5
16 Female    4
17   Male    3
18 Female    5
19   Male    4
20 Female    3

將“性別”中的值轉換為列名 -

> dcast(df2,Rate~Gender)

使用“比率”作為值列:使用 value.var 覆蓋。

聚合函式缺失:預設為長度

輸出

   Rate Female Male
1    0      0    1
2    1      0    1
3    2      1    3
4    3      3    2
5    4      1    1
6    5      1    4
7    6      2    0

更新於: 2021 年 3 月 5 日

5K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.