如何在 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 1 1 1
2 2 1 2
3 4 4 1
4 0 1 0
5 2 4 1
6 2 4 3
7 0 1 1
8 0 1 1
9 3 3 2
10 2 4 3
11 1 1 1
12 0 3 2
13 2 2 1
14 1 2 6
15 0 1 0
16 1 2 3
17 1 3 2
18 0 4 2
19 2 2 1
20 1 1 3
21 0 2 2
22 1 5 3
23 1 3 3
24 0 2 2
25 2 0 5

按行和將資料幀行值除以行和

使用 apply 函式將 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/sum(x)))
df_new

輸出

         x          y       z
[1,] 0.3333333 0.3333333 0.3333333
[2,] 0.4000000 0.2000000 0.4000000
[3,] 0.4444444 0.4444444 0.1111111
[4,] 0.0000000 1.0000000 0.0000000
[5,] 0.2857143 0.5714286 0.1428571
[6,] 0.2222222 0.4444444 0.3333333
[7,] 0.0000000 0.5000000 0.5000000
[8,] 0.0000000 0.5000000 0.5000000
[9,] 0.3750000 0.3750000 0.2500000
[10,] 0.2222222 0.4444444 0.3333333
[11,] 0.3333333 0.3333333 0.3333333
[12,] 0.0000000 0.6000000 0.4000000
[13,] 0.4000000 0.4000000 0.2000000
[14,] 0.1111111 0.2222222 0.6666667
[15,] 0.0000000 1.0000000 0.0000000
[16,] 0.1666667 0.3333333 0.5000000
[17,] 0.1666667 0.5000000 0.3333333
[18,] 0.0000000 0.6666667 0.3333333
[19,] 0.4000000 0.4000000 0.2000000
[20,] 0.2000000 0.2000000 0.6000000
[21,] 0.0000000 0.5000000 0.5000000
[22,] 0.1111111 0.5555556 0.3333333
[23,] 0.1428571 0.4285714 0.4285714
[24,] 0.0000000 0.5000000 0.5000000
[25,] 0.2857143 0.0000000 0.7142857

更新日期: 13-8-2021

1K+ 檢視

開啟您的 職業 生涯

完成課程並獲得認證

立即開始
廣告
© . All rights reserved.