如何在 R 中按行方差對資料框行值進行劃分?


要按行方差 R 劃分資料框行值,我們可以按照以下步驟進行 −

  • 首先,建立一個數據框。
  • 然後,使用 apply 函式按行方差劃分資料框行值。

建立資料框

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

 線上演示

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

在執行後,上面的腳本當生成如下輸出(此輸出將在您的系統上改變,因為存在隨機性) −

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

按行方差劃分資料框行值

使用 apply 函式按行方差劃分 df 的行值 −

 線上演示

x<-rpois(25,1)
y<-rpois(25,1)
z<-rpois(25,1)
df<-data.frame(x,y,z)
df_new<-t(apply(df,1, function(x) x/var(x)))
df_new

輸出

         x      y      z
[1,]    Inf    Inf    Inf
[2,] 0.750000 0.0 0.0000000
[3,] 0.000000 1.0 0.0000000
[4,] 2.000000 1.0 0.0000000
[5,] 3.000000 0.0 0.0000000
[6,]    Inf    Inf    Inf
[7,] 1.000000 3.0 2.0000000
[8,] 3.000000 3.0 6.0000000
[9,] 0.000000 3.0 3.0000000
[10,]    Inf   Inf    Inf
[11,] 1.000000 0.0 1.0000000
[12,] 1.285714 0.0 0.4285714
[13,] 1.000000 0.5 0.0000000
[14,] 3.000000 0.0 0.0000000
[15,] 6.000000 3.0 3.0000000
[16,] 1.500000 0.0 0.0000000
[17,] 3.000000 2.0 1.0000000
[18,]    NaN    NaN    NaN
[19,] 1.000000 0.0 2.0000000
[20,] 0.000000 1.0 2.0000000
[21,] 3.000000 0.0 3.0000000
[22,] 0.000000 1.0 2.0000000
[23,] 3.000000 0.0 0.0000000
[24,] 0.000000 1.5 1.5000000
[25,] 6.000000 3.0 3.0000000

更新時間: 14-8 月-2021

172 次瀏覽

開啟你的 職業 生涯

完成課程獲取認證

開始
廣告