如何在R中透過定義列數將向量轉換為資料框?


如果我們有一個向量,其中交替的值可以建立一個表格形式,那麼我們可能希望將向量轉換為資料框。為此,我們首先需要將向量轉換為具有適當列/行數的矩陣,然後使用as.data.frame函式將其讀取為資料框。檢視下面的示例以瞭解其工作原理。

示例1

線上演示

> x1<-c(rep(c(1,"male"),times=10),rep(c(2,"female"),times=10))
> x1

輸出

[1] "1" "male" "1" "male" "1" "male" "1" "male"
[9] "1" "male" "1" "male" "1" "male" "1" "male"
[17] "1" "male" "1" "male" "2" "female" "2" "female"
[25] "2" "female" "2" "female" "2" "female" "2" "female"
[33] "2" "female" "2" "female" "2" "female" "2" "female"

將x1轉換為資料框 -

> x1_df<-as.data.frame(matrix(x1,ncol=2,byrow=TRUE))
> x1_df

輸出

   V1   V2
1  1   male
2  1   male
3  1   male
4  1   male
5  1   male
6  1   male
7  1   male
8  1   male
9  1   male
10 1   male
11 2 female
12 2 female
13 2 female
14 2 female
15 2 female
16 2 female
17 2 female
18 2 female
19 2 female
20 2 female

示例2

將x2轉換為資料框 -

線上演示

> x2<-c(rep(c("Grp1",rpois(1,1)),times=10),rep(c("Grp2",rpois(1,8)),times=10))
> x2

輸出

[1] "Grp1" "5" "Grp1" "5" "Grp1" "5" "Grp1" "5" "Grp1" "5"
[11] "Grp1" "5" "Grp1" "5" "Grp1" "5" "Grp1" "5" "Grp1" "5"
[21] "Grp2" "11" "Grp2" "11" "Grp2" "11" "Grp2" "11" "Grp2" "11"
[31] "Grp2" "11" "Grp2" "11" "Grp2" "11" "Grp2" "11" "Grp2" "11"

示例2

> x2_df<-as.data.frame(matrix(x2,ncol=2,byrow=TRUE))
> x2_df

輸出

    V1  V2
1  Grp1 5
2  Grp1 5
3  Grp1 5
4  Grp1 5
5  Grp1 5
6  Grp1 5
7  Grp1 5
8  Grp1 5
9  Grp1 5
10 Grp1 5
11 Grp2 11
12 Grp2 11
13 Grp2 11
14 Grp2 11
15 Grp2 11
16 Grp2 11
17 Grp2 11
18 Grp2 11
19 Grp2 11
20 Grp2 11

示例3

將x3轉換為資料框 -

線上演示

> x3<-c(rep(c("Grp1",rnorm(1),rpois(1,10)),times=10),rep(c("Grp2",rnorm(1),rpois(1,2)),times=10))
> x3

輸出

[1] "Grp1" "0.756362500132569" "4"
[4] "Grp1" "0.756362500132569" "4"
[7] "Grp1" "0.756362500132569" "4"
[10] "Grp1" "0.756362500132569" "4"
[13] "Grp1" "0.756362500132569" "4"
[16] "Grp1" "0.756362500132569" "4"
[19] "Grp1" "0.756362500132569" "4"
[22] "Grp1" "0.756362500132569" "4"
[25] "Grp1" "0.756362500132569" "4"
[28] "Grp1" "0.756362500132569" "4"
[31] "Grp2" "-0.339861988439845" "1"
[34] "Grp2" "-0.339861988439845" "1"
[37] "Grp2" "-0.339861988439845" "1"
[40] "Grp2" "-0.339861988439845" "1"
[43] "Grp2" "-0.339861988439845" "1"
[46] "Grp2" "-0.339861988439845" "1"
[49] "Grp2" "-0.339861988439845" "1"
[52] "Grp2" "-0.339861988439845" "1"
[55] "Grp2" "-0.339861988439845" "1"
[58] "Grp2" "-0.339861988439845" "1"

示例4

> x3_df<-as.data.frame(matrix(x3,ncol=3,byrow=TRUE))
> x3_df

輸出

    V1          V2         V3
1  Grp1  0.756362500132569  4
2  Grp1  0.756362500132569  4
3  Grp1  0.756362500132569  4
4  Grp1  0.756362500132569  4
5  Grp1  0.756362500132569  4
6  Grp1  0.756362500132569  4
7  Grp1  0.756362500132569  4
8  Grp1  0.756362500132569  4
9  Grp1  0.756362500132569  4
10 Grp1  0.756362500132569  4
11 Grp2 -0.339861988439845  1
12 Grp2 -0.339861988439845  1
13 Grp2 -0.339861988439845  1
14 Grp2 -0.339861988439845  1
15 Grp2 -0.339861988439845  1
16 Grp2 -0.339861988439845  1
17 Grp2 -0.339861988439845  1
18 Grp2 -0.339861988439845  1
19 Grp2 -0.339861988439845  1
20 Grp2 -0.339861988439845  1

更新於:2021年3月5日

193 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告