如何在 R 中按列數劃分資料幀行?


若要在 R 中按列數劃分資料幀行,我們可以遵循以下步驟 −

  • 首先,建立一個數據幀。
  • 然後,使用 apply 函式按照列數劃分資料幀行。

建立資料幀

讓我們建立一個如下所示的資料幀 −

 線上示例

x<-rpois(25,1)
y<-rpois(25,2)
z<-rpois(25,2)
df<-data.frame(x,y,z)
df

執行後,以上指令碼會生成以下輸出(此輸出將在您的系統上因隨機化而有所不同) −

  x y z
1 0 1 4
2 0 4 2
3 1 3 2
4 1 1 3
5 0 4 2
6 0 2 4
7 2 1 1
8 0 4 1
9 0 2 2
10 0 1 1
11 0 2 5
12 3 3 1
13 1 2 2
14 1 3 4
15 1 1 1
16 3 4 3
17 3 1 2
18 2 2 0
19 1 2 3
20 1 1 0
21 0 1 1
22 2 2 0
23 1 2 1
24 0 2 0
25 0 1 1

按照列數劃分資料幀行

使用 apply 函式將 df 的行按照 df 中的列數進行劃分 −

 線上示例

x<-rpois(25,1)
y<-rpois(25,2)
z<-rpois(25,2)
df<-data.frame(x,y,z)
df_new<-t(apply(df,1, function(x) x/length(x)))
df_new
         x          y       z
[1,] 0.0000000 0.3333333 1.3333333
[2,] 0.0000000 1.3333333 0.6666667
[3,] 0.3333333 1.0000000 0.6666667
[4,] 0.3333333 0.3333333 1.0000000
[5,] 0.0000000 1.3333333 0.6666667
[6,] 0.0000000 0.6666667 1.3333333
[7,] 0.6666667 0.3333333 0.3333333
[8,] 0.0000000 1.3333333 0.3333333
[9,] 0.0000000 0.6666667 0.6666667
[10,] 0.0000000 0.3333333 0.3333333
[11,] 0.0000000 0.6666667 1.6666667
[12,] 1.0000000 1.0000000 0.3333333
[13,] 0.3333333 0.6666667 0.6666667
[14,] 0.3333333 1.0000000 1.3333333
[15,] 0.3333333 0.3333333 0.3333333
[16,] 1.0000000 1.3333333 1.0000000
[17,] 1.0000000 0.3333333 0.6666667
[18,] 0.6666667 0.6666667 0.0000000
[19,] 0.3333333 0.6666667 1.0000000
[20,] 0.3333333 0.3333333 0.0000000
[21,] 0.0000000 0.3333333 0.3333333
[22,] 0.6666667 0.6666667 0.0000000
[23,] 0.3333333 0.6666667 0.3333333
[24,] 0.0000000 0.6666667 0.0000000
[25,] 0.0000000 0.3333333 0.3333333

更新於: 2021-08-13

370 次瀏覽

開啟你的職業生涯

完成課程以獲得認證

開始
廣告